Здравствуйте,
мы размещаем наш форум на базе Discourse в Azure с использованием экземпляра «Azure Database for PostgreSQL». Одним из преимуществ этого сервиса являются рекомендации по производительности, основанные на «характеристиках базы данных» и её использовании.
После миграции в Azure мы получили несколько подсказок относительно отсутствующих и, вероятно, избыточных индексов, которыми я хочу с вами поделиться.
После создания отсутствующих индексов мы заметили незначительное (небольшое) общее повышение производительности, однако не смогли применить рекомендации по удалению индексов (DROP INDEX), так как это могло бы (или может) нарушить будущие обновления или миграции базы данных. В любом случае мы не можем сказать, безопасно ли удалять эти индексы или это негативно скажется на производительности.
Ниже приведены индексы, которые Azure предложила нам создать (влияние «низкое» и «умеренное»):
create-indexes.csv (1.5 КБ)
А вот рекомендации по уже существующим индексам:
Сводка
Удалить индекс
index_optimized_images_on_upload_idиз таблицыpublic.optimized_images.
Причина: Индекс перекрывается индексомindex_optimized_images_on_upload_id_and_width_and_height.
Удалить индекс
index_post_revisions_on_post_idиз таблицыpublic.post_revisions.
Причина: Индекс перекрывается индексомindex_post_revisions_on_post_id_and_number.
Удалить индекс
post_timings_summaryиз таблицыpublic.post_timings.
Причина: Индекс перекрывается индексомpost_timings_unique.
Удалить индекс
index_topic_links_on_topic_idиз таблицыpublic.topic_links.
Причина: Индекс перекрывается индексомunique_post_links.
Удалить индекс
index_post_uploads_on_post_idиз таблицыpublic.post_uploads.
Причина: Индекс перекрывается индексомidx_unique_post_uploads.
К рекомендациям по удалению («DROP») стоит относиться скептически, так как, по моему мнению, это повлияет лишь на общий размер базы данных, но не повысит производительность. Например: вся наша база данных занимает около 120 ГБ, а все эти рекомендации освободят лишь 422 МБ. Сам Azure определяет влияние как «низкое». Похоже, это не более чем очистка.
Как уже упоминалось выше, я просто хотел поделиться этой информацией с вами, так как это может помочь немного оптимизировать производительность. Помимо этих индексов, Azure не предоставляла других рекомендаций за время использования нами их сервиса.
С уважением,
Саша