PostgreSQL降低提交性能
PostgreSQL配置存在一些问题。经过一些基准测试后,我发现非常简单的查询会花费相对较长的时间,经过进一步检查,看来实际的COMMIT命令确实很慢。 我使用下表运行了一个非常简单的测试: CREATE TABLE test ( id serial primary key, foo varchar(16), ); 打开所有语句的登录后,我运行以下查询10000次: BEGIN; INSERT INTO test (a) VALUES ('bar'); COMMIT; BEGIN和INSERT花费的时间少于1毫秒,而COMMIT花费的平均时间为22毫秒。 在我自己的PC上运行相同的基准测试(速度要慢得多),BEGIN和INSERT语句的平均结果相同,但是COMMIT的平均时间约为0.4毫秒(快20倍以上)。 经过一番阅读后,我尝试使用该pg_test_fsync工具来解决问题。在服务器上,我得到以下结果: $ ./pg_test_fsync -o 1024 1024 operations per test O_DIRECT supported on this platform for open_datasync and open_sync. Compare file sync methods using one 8kB write: …