Olá,
Estamos hospedando nosso fórum baseado no Discourse no Azure com uma instância do “Azure Database for PostgreSQL”. Uma das vantagens desse serviço são as recomendações de desempenho com base nas “características do banco de dados” e no uso.
Desde a migração para o Azure, recebemos algumas sugestões sobre índices ausentes e presumivelmente redundantes, que gostaria de compartilhar com vocês.
Observamos um pequeno (não muito) aumento geral no desempenho após criar esses índices ausentes, mas não conseguimos aplicar as recomendações de DROP INDEX, pois isso poderia/poderá potencialmente quebrar atualizações ou migrações futuras do banco de dados. De qualquer forma, não podemos dizer se esses índices são seguros para exclusão ou se terão um efeito negativo no desempenho.
Aqui estão os índices que o Azure sugeriu que criássemos (impacto “baixo” e “moderado”):
create-indexes.csv (1,5 KB)
Abaixo estão as recomendações para índices “já cobertos”:
Resumo
Excluir o índice
index_optimized_images_on_upload_idna tabelapublic.optimized_images.
Motivo: O índice está coberto porindex_optimized_images_on_upload_id_and_width_and_height.
Excluir o índice
index_post_revisions_on_post_idna tabelapublic.post_revisions.
Motivo: O índice está coberto porindex_post_revisions_on_post_id_and_number.
Excluir o índice
post_timings_summaryna tabelapublic.post_timings.
Motivo: O índice está coberto porpost_timings_unique.
Excluir o índice
index_topic_links_on_topic_idna tabelapublic.topic_links.
Motivo: O índice está coberto porunique_post_links.
Excluir o índice
index_post_uploads_on_post_idna tabelapublic.post_uploads.
Motivo: O índice está coberto poridx_unique_post_uploads.
Vocês devem levar essas recomendações de “DROP” com uma pitada de ceticismo, pois acredito que elas afetarão apenas o tamanho total do banco de dados, em vez de aumentar o desempenho. Por exemplo: todo o nosso banco de dados ocupa ~120 GB, e todas essas recomendações liberariam apenas 422 MB. O próprio Azure define o impacto como “baixo”. Parece, portanto, que se trata apenas de uma limpeza.
Como dito acima, gostaria apenas de compartilhar isso com vocês, pois pode ajudar a ajustar um pouco o desempenho. Além desses índices, não houve outras recomendações fornecidas pelo Azure durante o tempo em que estamos usando seus serviços.
Atenciosamente,
Sascha