Se o seu
DELETE
destina-se a eliminar a grande maioria das linhas nessa tabela, uma coisa que as pessoas costumam fazer é copiar apenas as linhas que você deseja manter em uma tabela duplicada e, em seguida, usar DROP TABLE
ou TRUNCATE
para eliminar a mesa original muito mais rapidamente. Um índice pode ajudar a encontrar as linhas que você precisa excluir, mas a exclusão requer a atualização do índice. Depois de excluir muitas linhas, o índice pode estar desequilibrado e requer alguma manutenção com
OPTIMIZE TABLE
. O
DATE_SUB()
A função é uma expressão constante (não varia linha a linha), portanto, o otimizador de consulta deve ser inteligente o suficiente para fatorá-la e realizar o cálculo uma vez. Você não precisa criar um índice extra para uma chave primária. A restrição de chave primária cria implicitamente um índice que oferece o mesmo benefício que um índice de chave não primária.
Um índice composto provavelmente é tão útil quanto um índice de coluna única, desde que seus critérios de pesquisa façam referência à(s) coluna(s) mais à esquerda do índice. A ressalva "provavelmente" se deve ao fato de os nós de índice individuais serem maiores e, portanto, é preciso mais memória para armazenar em cache o índice, mas esse é um fator pequeno o suficiente para que eu não crie um outro índice de coluna única.