ďťż
Podstrony
|
telcocafeWitam,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? Zrób describe nazwa_tabeli to zobaczysz czy są jakieś różnice w indeksach (a zdarzyć się mogą, gdy np. masz różne wersje MySQL). Bez indeksów operacje na dużej kolekcji rekordów będą powolne. Zrób describe nazwa_tabeli to zobaczysz czy są jakieś różnice w indeksach (a zdarzyć się mogą, gdy np. masz różne wersje MySQL). Bez indeksów operacje na dużej kolekcji rekordów będą powolne. robilem SHOW INDEX, (describe nie pokazuje indeksow). Wszystko sie zgadza, obie bazy chodza w ramach jednego serwera, czyli konflikt wersji nie moze wystepowac. W pierwszym poscie zalaczylem SHOW CREATE TABLE, ktory pokazuje jakie sa indeksy. Dobrze w ogole interpretuje wynik EXPLAIN? Describe pokazuje klucze w polu "Key". Sprawdź czy tabele nie są posypane ("repair"), w logach mysql czy nie ma błędów indeksów i w ostateczności usunąć i stworzyć ponownie indeksy w bazie, w której występuje problem. |
|||
Sitedesign by AltusUmbrae. |