我在表上运行一个简单的更新查询:
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的可用磁盘空间。
答案 0 :(得分:1)
这是正常行为,更新性能会降低。问题是,每次更新后都需要更新索引。如果将数据导入数据库,则应使用数据库的批处理功能,该功能会暂时禁用索引并在之后重建它。
例如Sqlite:Sqlite appending data performance linear degradation, is this solvable?