sql >> Database >  >> RDS >> Mysql

Waarom is het resultaat van de rijen met explain niet gelijk aan count()?

Het laat zien hoeveel rijen het heeft doorlopen om uw resultaat te krijgen.

De reden voor de verkeerde gegevens is dat EXPLAIN niet nauwkeurig is, het maakt gissingen over uw gegevens op basis van informatie die over uw tafel is opgeslagen.

Dit is zeer nuttige informatie, bijvoorbeeld wanneer u JOINS op veel tabellen doet en u er zeker van wilt zijn dat u niet de hele samengevoegde tabel doorloopt voor één rij met informatie voor elke rij die u heeft.

Hier is een test op een tabel met 608 rijen.

SELECT COUNT(id) FROM table WHERE user_id = 1

Resultaat:

COUNT(id)
512

En hier is de uitleg

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

Resultaat:

id  rows
1   608


  1. Automatisch schalen met Amazon Aurora Serverless

  2. Wijzig een CHECK-beperking in SQL Server met behulp van T-SQL

  3. Hoe schakel ik MSDTC in op SQL Server?

  4. Wat is een vergelijkingsoperator?