Mysql
 sql >> Database >  >> RDS >> Mysql

La mia semplice query MySql non usa l'indice

Immagino che tu abbia poche righe nella tabella "commenti", questo è il motivo per cui MySQL sta eseguendo una scansione completa della tabella invece di utilizzare l'indice nella tua prima query. Si stima che il costo di una scansione completa della tabella potrebbe essere inferiore alla prima corrispondenza dell'indice e quindi alla ricerca delle righe.

Nella tua seconda query stai usando l'indice perché è possibile ottenere tutte le colonne della query (la colonna "id") direttamente dall'indice senza bisogno di cercare le righe della tabella dopo aver abbinato l'indice. Questo è il significato di "Uso di informazioni aggiuntive sull'indice".

Prova se con un numero significativo di righe in "commenti" MySQL utilizza ancora una scansione completa, penso che sarebbe un comportamento strano. In effetti, ho testato esattamente lo stesso in una versione 5.1 di MySQL e utilizza sempre l'"indice" anche con poche righe.