Examinando uma tabela MySQL de baixo
-
27-09-2019 - |
Pergunta
Quando executo uma instrução MySQL Select, leva muito tempo, porque eu já excluí anteriormente um número muito grande de linhas.
Existe uma maneira de a tabela começar a digitalizar a partir do fundo, em oposição do topo?
Solução
Uma consulta não examina a tabela em nenhuma ordem específica; Pode fazê -lo se isso ocorrer para atravessar um índice específico em ordem (por exemplo, uma varredura de intervalo), o que pode ser porque você usou um pedido por.
Os bancos de dados simplesmente não funcionam assim. Você não pode confiar no comportamento deles dessa maneira.
Se você estiver fazendo uma varredura completa, espere demorar um pouco, principalmente se você excluiu muitas linhas recentemente. No entanto, levará ainda mais tempo se você tiver muitas linhas.
Verifique se a consulta usa índices. Observa o plano de explicação e verifique se ele usa índices.
Outras dicas
Talvez você precise de um índice adicional para sua tabela. Também não dói emitir otimizar a tabela e analisar a tabela ocasionalmente. O desempenho da consulta não deve ser afetado por ter linhas excluídas, mesmo um grande número de linhas, desde que você tenha índices adequados.