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

Příkaz SELECT nepoužívá možné_klíče

Něco mi říká, že MySQL Query Optimizer rozhodl správně.

Zde je návod, jak to poznáte. Spusťte tyto:

Počet řádků

SELECT COUNT(1) FROM issued_parts;

Počet řádků odpovídajících vašemu dotazu

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

Pokud počet řádků, které skutečně načítáte, překračuje 5 % celkového počtu tabulky, MySQL Query Optimizer rozhodne, že by bylo méně náročné provést úplné prohledání tabulky.

Nyní, pokud byl váš dotaz přesnější, například takto:

SELECT * FROM issued_parts WHERE date_issued = '20100101';

pak získáte úplně jiný plán VYSVĚTLENÍ.



  1. Je EXISTS efektivnější než COUNT(*)>0?

  2. Zábava s kompresí (columnstore) na velmi velkém stole – část 2

  3. Jak přidat úvodní nulu k různé délce znaků v mysql?

  4. Obecné řešení Ruby pro SQLite3 LIKE nebo PostgreSQL ILIKE?