Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/24.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何改进Postgresql';截断';演出_Linux_Performance_Postgresql_Truncate_Ext4 - Fatal编程技术网

Linux 如何改进Postgresql';截断';演出

Linux 如何改进Postgresql';截断';演出,linux,performance,postgresql,truncate,ext4,Linux,Performance,Postgresql,Truncate,Ext4,在运行Ubuntu10.09和ext4 fs上的Postgresql 9.0的本地计算机上,我在截断数据库中的所有表时遇到问题 截断带有56个表的空数据库需要大约7秒钟,而我所有的同事都有大约1秒钟的性能 我用一个命令截断所有表。桌子上全是外键 有人知道这个问题吗?我猜你的同事在他们的磁盘上启用了写缓存,或者在Postgres配置中禁用了fsync。如何在一个命令中逐个表或所有表截断DB?您的表有外键的频率有多高?您的同事和您使用的数据库是否完全相同?您是使用TRUNCATE TABLE命令还是

在运行Ubuntu10.09和ext4 fs上的Postgresql 9.0的本地计算机上,我在截断数据库中的所有表时遇到问题

截断带有56个表的空数据库需要大约7秒钟,而我所有的同事都有大约1秒钟的性能

我用一个命令截断所有表。桌子上全是外键


有人知道这个问题吗?

我猜你的同事在他们的磁盘上启用了写缓存,或者在Postgres配置中禁用了
fsync

如何在一个命令中逐个表或所有表截断DB?您的表有外键的频率有多高?您的同事和您使用的数据库是否完全相同?您是使用TRUNCATE TABLE命令还是运行DELETE语句?您是否对这些正在运行TRUNCATE的表运行任何活动查询?我的同事使用外键从同一转储创建了相同的数据库。数据库是空的。没有并行运行的查询。你们都使用相同版本的Ubuntu、相同版本的PostgreSQL和相同类型的文件系统吗?或者封装在一个事务中。7秒56个表~=8 fsync/秒,如果在一个事务之外,这对于一个正在消亡的硬盘驱动器(或非常繁忙的硬盘驱动器)来说似乎是可信的。谢谢!关闭
fsync
提高了
truncate
在我的开发机器上的性能8次@907但不要试图在
fsync=off
的情况下运行生产数据库-您迟早会丢失数据@托梅茨基是的,我知道。非常感谢。