sql >> Databáze >  >> RDS >> Mysql

Můj jednoduchý dotaz MySql nepoužívá index

Myslím, že máte v tabulce „komentářů“ málo řádků, proto MySQL provádí úplné prohledávání tabulky namísto použití indexu ve vašem prvním dotazu. Odhaduje se, že náklady na úplné prohledání tabulky mohou být nižší, než když nejprve porovnáte index a poté vyhledáte řádky.

Ve vašem druhém dotazu používáte index, protože je možné získat všechny sloupce dotazu (sloupec 'id') přímo z indexu bez nutnosti vyhledávat řádky tabulky po shodě s indexem. To je význam dodatečných informací "Použití indexu".

Zkuste, jestli se značným počtem řádků v „komentářích“ MySQL stále používá úplné skenování, myslím, že by to bylo zvláštní chování. Ve skutečnosti jsem přesně totéž testoval v MySQL verze 5.1 a vždy používá 'index' i s několika řádky.



  1. Jak byste implementovali sekvence v Microsoft SQL Server?

  2. získat předchozí hodnotu pro řádky null

  3. Návrhový vzor pro vlastní pole v relační databázi

  4. Jak vložit data formuláře do databázové tabulky MySQL pomocí PHP a Ajaxu?