![]() |
MySQL, wydajnosc zapytania - Wersja do druku +- Forum Webmastera, HTML, CSS, PHP, MySQL, Hosting, Domeny - Forum dla Webmasterów (https://www.webmastertalk.pl) +-- Dział: Technologie internetowe - tworzenie stron WWW (https://www.webmastertalk.pl/forum-technologie-internetowe-tworzenie-stron-www) +--- Dział: Programowanie, Bazy danych (https://www.webmastertalk.pl/forum-programowanie-bazy-danych) +--- Wątek: MySQL, wydajnosc zapytania (/thread-mysql-wydajnosc-zapytania) |
MySQL, wydajnosc zapytania - bcn - 04-07-2010 Witam, mam dwie bazy danych w ramach jednego serwera MySQL. Wykonujac zapytanie na baza1 wszystko jest ok, natomiast na baza2 zapytanie trwa 30sekund. Oto zapytanie: SELECT tmp.pesel,ew.wynik,ew.wynik_p,ew.wynik_r,o.imie,o.nazwisko FROM _tmp_ew_wpr_lista as tmp LEFT JOIN egzaminy_wyniki ew ON (tmp.egzamin=ew.egzamin AND tmp.pesel=ew.pesel AND ew.studia="") LEFT JOIN osoby o ON (tmp.pesel=o.pesel) WHERE tmp.egzamin="EGZ_PRK_KONS" ORDER BY tmp.pesel LIMIT 0,50; Oto wyniki dla EXPLAIN SELECT: baza1: http://wklej.org/id/359597/ baza2: http://wklej.org/id/359598/ O ile dobrze rozumiem powyzsze wyniki to w przypadku baza2 nie korzysta z indeksow i tu lezy przyczyna. Indeksy sa te same, jednak patrzac na SHOW CREATE TABLE widze pewne roznice, oto wyniki dla dwoch baz i tych tabel: (przypominam, ze dla baza1 jest ok, dla baza2 zle): SHOW CREATE TABLE dla tabeli egzaminy_wyniki: baza1: http://wklej.org/id/359686/ baza2: http://wklej.org/id/359687/ roznica taka, ze zmienila sie maksymalna dlugosc peselu. SHOW CREATE TABLE dla tabeli _tmp_ew_wpr_lista baza1: http://wklej.org/id/359698/ baza2: http://wklej.org/id/359693/ zmienilo sie kodowanie SHOW CREATE TABLE dla tabeli osoby: baza1: http://wklej.org/id/359700/ baza2: http://wklej.org/id/359701/ rowniez roznica w dlugosci peselu oraz obie tabele maja kodowanie latin2 Co moze byc przyczyna takiego stanu rzeczy? |