Why is a simple query on larger table much slower?
我在表上运行一个简单的更新查询:
1 | 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的可用磁盘空间。
这是正常行为,更新性能会下降。问题是,每次更新后都需要更新索引。如果将数据导入数据库,则应使用数据库的批处理功能,该功能会暂时禁用索引并在以后重建索引。
例如与Sqlite相同:Sqlite附加了数据性能线性下降,这是可解决的吗?