sql >> Database >  >> RDS >> Mysql

MySQL gebruikt geen index voor ORDER BY

Omdat het de hele tabel moet laden om de vraag te beantwoorden en het sorteren van 4 elementen goedkoop is, vermijdt de query-optimizer misschien net de index aan te raken. Gebeurt het nog steeds met grotere tafels?

Merk op dat een varchar(3000)-kolom geen dekkende index kan zijn, omdat MySQL niet meer dan de eerste 768 of zo bytes van een varchar in een index zal opnemen.

Als je wilt dat de zoekopdracht alleen de index leest, moet de index elke kolom bevatten die je bent SELECT erin voor. Op innodb zou dat moeten werken voor je tabel met twee kolommen zodra je textcol klein genoeg maakt; op MyISAM moet u zelf de primaire sleutelkolom opnemen, zoals CREATE INDEX textcolindex ON test (textcol,id);



  1. Bron-replica-replicatie configureren in MySQL

  2. Ga door met het invullen van HTML-formulieren na het sluiten en opnieuw openen

  3. MySQL of PHP voegt een  toe wanneer de £ wordt gebruikt

  4. Genereer een willekeurige datum in Oracle met DBMS_RANDOM