sql >> Database teknologi >  >> RDS >> Mysql

Mysql-indekset bliver ignoreret

FORCE er lidt af en forkert betegnelse. Her er, hvad MySQL-dokumenterne siger (min fremhævelse):

Du kan også bruge FORCE INDEX, der fungerer som USE INDEX (index_list), men med den tilføjelse, at en tabelscanning antages at være meget dyr. Med andre ord, en tabelscanning bruges kun, hvis der ikke er nogen måde at bruge et af de givne indeks til at finde rækker i tabellen.

Da du faktisk ikke "finder" nogen rækker (du vælger dem alle), er en tabelscanning altid vil være hurtigst, og optimeringsværktøjet er smart nok til at vide det på trods af, hvad du fortæller dem.

ETA:

Prøv at tilføje en ORDER BY på den primære nøgle én gang, og jeg vil vædde på, at den vil bruge indekset.



  1. En anden UnicodeEncodeError ved brug af pandas-metoden to_sql med MySQL

  2. Hvordan får jeg kolonnenavne i Laravel 4?

  3. Skrivning af læsbar kode til VBA – Prøv* mønster

  4. SWITCHOFFSET() Eksempler i SQL Server