为什么对较大表的简单查询要慢得多?

时间:2017-07-04 08:16:30

标签: sql postgresql database-performance

我在表上运行一个简单的更新查询:

UPDATE table_x SET col_a = (col_b AT TIME ZONE 'UTC') AT TIME ZONE col_tz;

当table_x由100个条目组成时,查询需要几毫秒 - > 100'000个条目= 2秒 - > 1'000'000个条目= 20秒 到现在为止还挺好。但是当表包含20M条目时,查询将永远运行!有人知道这个的原因吗?有什么办法可以解决这个问题?

也许我应该补充一点,我的计算机上只有大约13 GB的可用磁盘空间。

1 个答案:

答案 0 :(得分:1)

这是正常行为,更新性能会降低。问题是,每次更新后都需要更新索引。如果将数据导入数据库,则应使用数据库的批处理功能,该功能会暂时禁用索引并在之后重建它。

例如Sqlite:Sqlite appending data performance linear degradation, is this solvable?