@beduin01

Нужно ли удалять индексы перед изменением их типа?

Нужно ли удалять индексы перед изменением их типа? Старые остаются? Или нужно в начале удалить, потом создавать новые?
Просто работаю через Valentina Studio и не совсем понятно что происходит под капотом.
  • Вопрос задан
  • 25 просмотров
Пригласить эксперта
Ответы на вопрос 1
Melkij
@Melkij
PostgreSQL DBA
У индекса нет возможности изменения типа. Ни самого типа индекса (btree, hash, gin, gist) ни типов полей.
Нужно сначала создавать новый индекс, затем удалять старый. Имена индексов при этом должны будут различаться. Сначала удалить, потом построить новый - чревато развлечениями на production, когда на время построения нового индекса уже нет старого индекса и потому ранее быстрые запросы едят 100% cpu и диска, превращая задачу построения нового индекса во что-то около невозможное. На dev машине, конечно, без разницы.

Просто работаю через Valentina Studio и не совсем понятно что происходит под капотом.

Сделайте log_statement = all (или ddl) - и увидите в логе базы, что приложение делает. Бывает полезно не только с gui всякими, но и с чрезмерно "умными" orm.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы