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

Hvorfor rækkerne returnerer ved explain er ikke lig med count()?

Det viser, hvor mange rækker den løb igennem for at få dit resultat.

Årsagen til de forkerte data er, at EXPLAIN ikke er nøjagtige, det gætter om dine data baseret på information gemt om din tabel.

Dette er meget nyttig information, for eksempel når du laver JOINS på mange tabeller, og du vil være sikker på, at du ikke kører gennem hele den samlede tabel for en række informationer for hver række, du har.

Her er en test på en tabel med 608 rækker.

SELECT COUNT(id) FROM table WHERE user_id = 1

Resultat:

COUNT(id)
512

Og her er forklaringen

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

Resultat:

id  rows
1   608


  1. Igen og igen! Håndtering af tilbagevendende hændelser i en datamodel

  2. MySQL i skyen - fordele og ulemper ved Amazon RDS

  3. Oracle indsæt hvis ikke eksisterer erklæring

  4. JSON_INSERT() – Indsæt værdier i et JSON-dokument i MySQL