В чем разница между индексом перестроения postgresql и индексом пересоздания, какой из них лучше? - PullRequest
0 голосов
/ 14 сентября 2018

У меня есть таблица, размер индекса которой слишком велик (около 2 ГБ).Когда я восстанавливаю базу данных на виртуальную машину, ее размер составляет всего 200 МБ, поэтому мне нужно пересобрать / пересоздать индекс, и я, вероятно, сделаю это в Интернете.

В чем разница между перестроением (переиндексацией) и повторным-создание индекса, а какой лучше, когда я делаю это онлайн?В частности, какая опция позволяет запрашивать БД во время операции?

1 Ответ

0 голосов
/ 14 сентября 2018

Команда REINDEX требует эксклюзивной блокировки таблицы , что означает, что она заблокирует любой доступ к таблице до тех пор, пока команда не будет завершена.Если вы можете позволить себе такое окно обслуживания, то оно прекрасно.

Альтернатива для онлайн-перестроения - создать новый индекс, используя CREATE INDEX CONCURRENTLY, а затем отбросить старый.Это займет больше времени для завершения, но разрешает доступ к таблице при перестройке индекса.

...