关于sql:为什么在大表上进行简单查询要慢得多?

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附加了数据性能线性下降,这是可解决的吗?