Sobes.tech
Senior

Quero adicionar um índice numa tabela com um milhão de registos — quais as consequências e como fazer corretamente?

sobes.tech IA

Resposta da IA

Adicionar um índice a uma tabela com um milhão de registos pode causar uma carga significativa na base de dados: a operação pode demorar, bloquear a tabela ou atrasar outras consultas. Para minimizar as consequências:

  • Use a criação de índice com a opção ONLINE (se o SGBD suportar), para não bloquear a tabela.
  • Execute a operação durante períodos de baixa carga.
  • Considere criar o índice numa réplica e depois mudar para ela.
  • Verifique se o índice é realmente necessário, para não gastar recursos desnecessariamente.

Exemplo para PostgreSQL:

CREATE INDEX CONCURRENTLY idx_column ON table(column);

A opção CONCURRENTLY permite criar um índice sem bloquear operações de escrita, mas leva mais tempo e requer mais recursos.