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

SELECT-sætning bruger ikke mulige_nøgler

Noget fortæller mig, at MySQL Query Optimizer besluttede korrekt.

Her er hvordan du kan fortælle. Kør disse:

Antal rækker

SELECT COUNT(1) FROM issued_parts;

Antal rækker, der matcher din forespørgsel

SELECT COUNT(1) FROM issued_parts WHERE date_issued > '20100101';

Hvis antallet af rækker, du rent faktisk henter, overstiger 5 % af tabellens samlede antal, beslutter MySQL Query Optimizer, at det ville være mindre anstrengelse at lave en fuld tabelscanning.

Nu, hvis din forespørgsel var mere præcis, for eksempel med dette:

SELECT * FROM issued_parts WHERE date_issued = '20100101';

så får du en helt anden FORKLAR-plan.



  1. ved at bruge sql concat() i django til at sammenkæde to kolonner

  2. Sådan finder du dubletter i 2 kolonner ikke 1

  3. Simulerende lag-funktion på MySQL

  4. Kan jeg styre GROUP BY i django 1.3's orm?