sql >> Databasteknik >  >> RDS >> Mysql

Min enkla MySql-fråga använder inte index

Jag antar att du har några rader i "kommentarer"-tabellen, det är därför MySQL gör en fullständig tabellsökning istället för att använda indexet i din första fråga. Det uppskattas att kostnaden för en fullständig tabellskanning kan vara lägre än att först matcha indexet och sedan slå upp raderna.

I din andra fråga använder du indexet eftersom det är möjligt att få alla kolumner i frågan ('id'-kolumnen) direkt från indexet utan att behöva slå upp tabellraderna efter att ha matchat indexet. Detta är innebörden av "Använda index" extra information.

Prova om MySQL fortfarande använder en fullständig genomsökning med ett betydande antal rader i "kommentarer", jag tycker att det skulle vara ett konstigt beteende. Faktum är att jag har testat exakt samma sak i en MySQL version 5.1 och den använder alltid "index" även med få rader.



  1. PHP med MySQL 8.0+-fel:Servern begärde autentiseringsmetod okänd för klienten

  2. Infoga en flerdimensionell php-array i en mysql-databas

  3. Varför returnerar välj SCOPE_IDENTITY() en decimal istället för ett heltal?

  4. PostgreSQL - dynamiskt värde som tabellnamn