Domanda

Quando ho eseguito un'istruzione Select mysql, ci vuole molto tempo perché ho già precedentemente cancellato un gran numero di righe.

C'è un modo per il tavolo per avviare la scansione dal basso, al contrario di dall'alto?

È stato utile?

Soluzione

Una query non esegue la scansione della tabella in un ordine particolare; potrebbe farlo se capita di attraversare un determinato indice in ordine (ad esempio un intervallo di scansione), che potrebbe essere perché si è utilizzato un ORDER BY.

Database proprio non funziona così. Non si può contare sul loro comportamento in quel modo.

Se stai facendo una scansione completa della tabella, si aspettano di prendere un po ', soprattutto se hai eliminato un sacco di righe di recente. Tuttavia, ci vorrà anche di più se si dispone di un sacco di righe.

Assicurarsi che la query utilizza gli indici invece. Guarda il piano di spiegare e fare in modo che utilizza gli indici.

Altri suggerimenti

Forse avete bisogno di un indice aggiuntivo per la vostra tavola. Inoltre non fa male a tema OPTIMIZE TABLE e analizzare TABELLA di tanto in tanto. Query prestazioni non dovrebbe essere influenzata da avere righe eliminate, anche un gran numero di righe, purché si disponga di indici appropriati.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top