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

MySQL EXPLAIN:Použití indexu vs. Použití podmínky indexu

Nejlépe to vysvětluje příklad:

SELECT Year, Make --- possibly more fields and/or from extra tables
FROM myUsedCarInventory
WHERE Make = 'Toyota' AND Year > '2006'

Assuming the Available indexes are:
  CarId
  VIN
  Make
  Make and Year

Tento dotaz by VYSVĚTLIL pomocí „Using Index“, protože to vůbec nepotřebuje , "zasáhnout" samotnou tabulku myUsedCarInventory, protože index "Make and Year" "pokryje" její potřebu s ohledem na prvky klauzule WHERE, které se této tabulky týkají .

Nyní si představte, že dotaz ponecháme stejný, ale pro přidání podmínky pro barvu

...
WHERE Make = 'Toyota' AND Year > '2006' AND Color = 'Red'

Tento dotaz by pravděpodobně VYSVĚTLIL 'Using Index Condition' ('pravděpodobné', zde je pro případ, že by Toyota + rok nebyl odhadnut jako dostatečně selektivní a optimalizátor se může rozhodnout tabulku pouze prohledat). To by znamenalo, že MySQL by PRVNÍ použít index k vyřešení značky + rok a musel by také vyhledat odpovídající řádek v tabulce, pouze pro řádky, které splňují podmínky značky + rok. To je to, co se někdy označuje jako "tlačit optimalizaci dolů ".

."

  1. Jak přidat záhlaví a zápatí do sestavy v aplikaci Access

  2. Třída fondu připojení Oracle

  3. Uložená procedura MySQL vs. složitý dotaz

  4. mysql2.so:libmysqlclient_r.so.15:nelze otevřít soubor sdíleného objektu:Žádný takový soubor nebo adresář