Как рассчитать время для создания индекса для большой таблицы Postgresql?

У меня есть таблица Postgres с 26 миллионами строк, и я хочу добавить индексированный логический столбец.

Есть ли способ рассчитать, сколько времени займет этот тип операции, прежде чем пытаться выполнить ее в производственной среде?


person Carolyn Conway    schedule 17.08.2016    source источник
comment
Почему вы хотите индексировать логический столбец? Это не обеспечит значительного увеличения производительности, поскольку логическое значение только два параметра - истина / ложь, по сравнению с чем-то уникальным, что можно улучшить с помощью индекса.   -  person mituw16    schedule 17.08.2016
comment
Я хотел проиндексировать логический столбец только потому, что предполагал, что это улучшит производительность. Есть ли у вас какие-либо ресурсы или ссылки, в которых говорится (1), что индексы в логических столбцах не улучшают производительность, или (2) описывается, как узнать, поможет ли индекс?   -  person Carolyn Conway    schedule 17.08.2016
comment
Это для mysql, но применима та же идея. Вы почти не увидите улучшения скорости ваших запросов при индексировании логического столбца. stackoverflow.com/a/1845014/1729859 Также stackoverflow.com/a/10524734/1729859   -  person mituw16    schedule 17.08.2016
comment
Привет, Кэролайн! В конце концов, вы взялись за создание этого индекса? Если да, то сколько времени это заняло?   -  person Scary Wombat    schedule 31.03.2017
comment
@ScaryWombat: Если я правильно помню, я думаю, чтобы запустить его, потребовалось всего пару минут. К сожалению, я до сих пор не нашел хорошего способа заранее оценить такие вещи ¯_ (ツ) _ / ¯   -  person Carolyn Conway    schedule 31.03.2017


Ответы (1)


Невозможно рассчитать время индекса, поскольку оно зависит от многих факторов (оборудования, программного обеспечения, конфигурации, нагрузки и т. Д.).

Хорошая новость в том, что вы можете CREATE INDEX CONCURRENTLY, что занимает больше времени, но не блокирует таблицу. Таким образом, операция не имеет побочных эффектов, кроме более высокой нагрузки на сервер.

Чтобы сделать некоторые предостережения, проверьте документацию .

person user3621424    schedule 17.08.2016
comment
Спасибо! Хорошо знать. - person Carolyn Conway; 17.08.2016