Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: EXPLAIN dla zapytań typu SELECT
Forum PHP.pl > Forum > Bazy danych > MySQL
wujek2009
Cześć.

Otrzymałem taki wynik za pomocą EXPLAIN - jednak nie do końca wiem, co mogę zrobić, aby zoptymalizować wynik.


Czy zapytanie zawsze korzysta tylko z jednego klucza (w tym przypadku "fk_productid_index") pomimo, że ma do wyboru
więcej ("possible_keys")? W jaki sposób zaangażować pozostałe klucze?

W tej chwili "rows" zwraca mi 7 - czyli jest to liczba ile razy dane muszą się pobrać, abym otrzymał dany wynik.
Im mniejsza liczba tym lepszy rezultat czasowy jak domyślam się. Więc chciałbym się spytać

1) W jaki sposób zaangażować pozostałe indeksy a nie tylko "fk_productid_index"
2) Patrząc na tą tabelę co jeszcze mogę użyć co może mi pomóc zoptymalizować wynik zapytania?
mmmmmmm
Pokaż DDL i zapytanie.
wujek2009
  1. SELECT `ps_av`.`*`, `ps_avl`.`*`
  2. FROM `ps_attribute_values` AS `ps_av`
  3. LEFT JOIN `ps_attribute_values_lang` AS `ps_avl`
  4. ON (`ps_av`.`id_attr_value` = `ps_avl`.`attr_value_id`)
  5. WHERE `ps_av`.`is_active` = 'yes'
  6. AND `ps_av`.`id_product` = '2'
  7. AND `ps_av`.`format_key` = '3'
  8. AND `ps_avl`.`language_id` = 'pl'
  9. ORDER BY `ps_avl`.`position` ASC


Dla powyższego zapytania zwraca EXPLAIN, które przedstawiłem w pierwszym poście (uaktualniłem screena).
mmmmmmm
Pokaż DDl, czyli CAŁE CREATE TABLE dla obu tabel.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.