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

Perché le righe restituite da spiegare non sono uguali a count()?

Mostra quante righe ha attraversato per ottenere il risultato.

Il motivo dei dati sbagliati è che EXPLAIN non è accurato, fa ipotesi sui tuoi dati in base alle informazioni memorizzate sulla tua tabella.

Si tratta di informazioni molto utili, ad esempio quando si eseguono JOINS su molte tabelle e si desidera essere sicuri di non scorrere l'intera tabella unita per una riga di informazioni per ogni riga che si ha.

Ecco un test su una tabella di 608 righe.

SELECT COUNT(id) FROM table WHERE user_id = 1

Risultato:

COUNT(id)
512

Ed ecco la spiegazione

EXPLAIN SELECT COUNT(id) FROM table WHERE user_id = 1

Risultato:

id  rows
1   608