Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [MySQL] Długie wykonywanie zapytania
Forum PHP.pl > Forum > Bazy danych
jol.us_
Lacze dwie tabele: zamowienia i klienci. Zapytanie ma zwracac dane klienta z tabeli "klienci" i sume jego zamowien umieszczonych w tabeli "zamowienia". Calosc musze wykonac jednym zapytaniem bo musze sortowac te dane.


Mam zapytanie SQL ktore dziala poprawnie ale zbyt dlugo wykonuje.
  1. SELECT count(zamowienia.id) AS zamowien FROM klienci LEFT JOIN zamowienia ON (klienci.pin=zamowienia.pin) GROUP BY klienci.pin



Co jest nie tak? Jak przyspieszyc dzialanie zapytania?
JaRoPHP
Masz indeksy na kolumnach: klienci.pin i zamowienia.pin?

Łatwiej analizowałoby się przyczynę wolnego wykonywania zapytania, gdybyś:
- przedstawił strukturę tabel,
- pokazał wynik EXPLAIN:
  1. EXPLAIN SELECT count(zamowienia.id) AS zamowien
  2. FROM klienci LEFT JOIN zamowienia ON (klienci.pin=zamowienia.pin)
  3. GROUP BY klienci.pin


-- EDIT (do postu poniżej)
Struktura tabeli - mam na myśli, co jest kluczem głównym, jakie są indeksy (jeżeli są))
jol.us_
Klienci
  1. pin int(11) - klucz glowny
  2. typ char(1)
  3. nazwa_firmy varchar(255)
  4. adres_firmy_ulica varchar(255)
  5. adres_firmy_miasto varchar(255)
  6. adres_firmy_kod_pocztowy varchar(6)


Zamowienia
  1. id int(11) - klucz glowny
  2. pin int(11) - klucz z tabeli klienci
  3. STATUS varchar(255)
  4. pin int(11)
  5. typ int(11)
  6. data_zamowienia datetime


EXPLAIN:
  1. Klienci
  2. Pin: ALL
  3. Wszystkich zam: 684
  4.  
  5. Zamowienia
  6. Pin ALL
  7. Wszystkich zam: 2281
JaRoPHP
Wynik EXPLAIN posiada kilka jeszcze wskazówek, które mogą być pomocne:
- select_type
- type
- possible keys
- key
- ref
- rows

Również proszę o pokazanie wyniku następujących zapytań:
  1. DESCRIBE zamowienia
  1. DESCRIBE klienci
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.