Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/postgresql/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Postgresql 在postgres中使用索引更新列_Postgresql_Indexing - Fatal编程技术网

Postgresql 在postgres中使用索引更新列

Postgresql 在postgres中使用索引更新列,postgresql,indexing,Postgresql,Indexing,我正在更新表中超过800万行。我正在更新的列是client\u id,该表在user\u id和client\u id上有复合索引。它是否会以某种方式影响索引…?使用索引进行大型更新会更慢,因为索引也必须更新。这可能是个问题,也可能不是。取决于很多事情 更新后,索引将保持其应有的状态,但REINDEX可能是为了更好地利用它们的空间。如果此8M行是表中的大多数行,VACUUM-FULL可能是为了减少磁盘空间的使用,但是如果表一直在大量更新,则可能不值得这样做 因此,如果您愿意,您可以删除索引,更新

我正在更新表中超过800万行。我正在更新的列是
client\u id
,该表在
user\u id
client\u id
上有复合索引。它是否会以某种方式影响索引…?

使用索引进行大型更新会更慢,因为索引也必须更新。这可能是个问题,也可能不是。取决于很多事情

更新后,索引将保持其应有的状态,但
REINDEX
可能是为了更好地利用它们的空间。如果此8M行是表中的大多数行,
VACUUM-FULL
可能是为了减少磁盘空间的使用,但是如果表一直在大量更新,则可能不值得这样做


因此,如果您愿意,您可以删除索引,更新并重新创建索引,但无法确定这是否比使用索引进行更新更快。

当您完成更新时,重建索引可能是一个好主意。很好,人们希望这会影响索引的内容,否则索引就毫无意义了。您的意思是使用索引影响更新或后续查询的性能吗?还是什么?我认为索引会减慢更新过程,但要确保一旦我更新此列,然后使用更改的列值,我是否需要重新创建索引,以确保它与更新之前一样快。。?