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.