sql >> Database >  >> RDS >> Mysql

Als EXPLAIN wordt uitgevoerd en de veldwaarde voor sleutel niet null is maar Extra leeg is, wordt de sleutel dan gebruikt?

Using index betekent niet wat je denkt dat het betekent. Als het aanwezig is in de Extra kolom, geeft dit aan dat de optimizer niet de hele rijen leest, maar de index (uitsluitend) gebruikt om kolominformatie te vinden.

De sleutel kan nog steeds voor andere dingen worden gebruikt, bijvoorbeeld om zoekopdrachten uit te voeren als je een WHERE hebt clausule enz. In uw specifieke scenario, bijvoorbeeld, het verdwijnen van de Using temporary; betekent eigenlijk dat uw index wordt gebruikt, aangezien MySQL niet langer de inhoud van uw tabel hoeft te herschikken in een nieuwe tijdelijke tabel om de GROUP BY uit te voeren .




  1. Haal het grootste aantal in een mySQL-database in PHP

  2. Schemanaam toevoegen aan entiteit in Spring-gegevens?

  3. Hoe voeg ik als parameter een datum in mysql in?

  4. SQL UPDATE alle waarden in een veld met toegevoegde string CONCAT werkt niet