sql >> Databasteknik >  >> RDS >> Mysql

Varför raderna returnerar genom förklara är inte lika med count()?

Den visar hur många rader den gick igenom för att få ditt resultat.

Anledningen till fel data är att EXPLAIN inte är korrekt, det gör gissningar om din data baserat på information som lagras om din tabell.

Detta är mycket användbar information, till exempel när du gör JOINS på många tabeller och du vill vara säker på att du inte kör igenom hela den sammanfogade tabellen för en rad med information för varje rad du har.

Här är ett test på en tabell med 608 rader.

SELECT COUNT(id) FROM table WHERE user_id = 1

Resultat:

COUNT(id)
512

Och här är förklaringen

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

Resultat:

id  rows
1   608


  1. 6 sätt att ta bort dubbletter av rader som har en primärnyckel i Oracle

  2. Kan jag återanvända ett beräknat fält i en SELECT-fråga?

  3. Hur RTRIM() fungerar i MariaDB

  4. Oracle SqlPlus - sparar utdata i en fil men visas inte på skärmen