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?

Foi útil?

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.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top