Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Długi czas "sending data" na jednym serwerze i krótki na drugim
Forum PHP.pl > Forum > Bazy danych
TomASS
Mam dwa serwery - "serwer A" oraz "serwer B"

z serwera A skopiowałem na B tabele potrzebne do zapytania:
  1. SELECT * FROM m_transporty_miejsca AS TM LEFT JOIN m_transporty AS T ON (T.ID=TM.ID_transport)


oczywiście indeks na TM.ID_transport jest
m_transporty_miejsca = 800.000 rekordów
m_transporty = 300.000 rekordów

na serwerze A zapytanie wykonuje się 80-90 sekund (całość to "sending data")
a na serwerze B zapytanie wykonuje się 0.01 sekundy

czym to może być spowodowane?
Pyton_000
na obu przeyłasz po localhost ?
TomASS
tak - na obu przez PMA skonfigurowanym na localhost
Pyton_000
A próbowałeś odpalić optymalizację na A?
TomASS
Tak - zarówno optymalizację, defragmentację i założenie indeksów na nowo sad.gif
markuz
Próbowałeś szukać w Google pod hasłem - "mysql sending data slow"?
Dużo osób mialo taki problem.

TomASS
Jasne, że szukałem.
Nic konkretnego nie znalazłem (poza indeksami)

Np.

Cytat
An explain-plan is usually the best place to start whenever you have a slow query. To get one, run

DESCRIBE SELECT source_id FROM directions WHERE (destination_id = 10);

This will show you a table listing the steps required to execute your query. If you see a large value in the 'rows' column and NULL in the 'key' column, that indicates that your query having to scan a large number of rows to determine which ones to return.

In that case, adding an index on destination_id should dramatically speed your query, at some cost to insert and delete speed (since the index will also need to be updated).



ale indeks mam
viking
We FROM zrób FORCE INDEX. Obie tabele mają założony?
markuz
A jakie masz dyski? Na 1 i na 2 serwerze?
TomASS
FORCE INDEX zrobiłem wcześniej - nic.
Dodatkowo EXPLAIN mówi, że korzysta z indeksu ID_transport

Dyski na obydwu są SSD.

Zrobiłem tak:
1. utworzyłem nowe tabele (zamiast Inno to MyISAM - nie wiem dlaczego były Inno)
2. przekopiowałem dane
3. zrobiłem ANALISE
4. zrobiłem OPTYMALIZE

i jest zdecydowanie szybciej smile.gif
Dziękuję za pomoc smile.gif
Pyton_000
A wiesz jakie konsekwencje to za sobą poniosło?
sabat24
Cytat
utworzyłem nowe tabele (zamiast Inno to MyISAM - nie wiem dlaczego były Inno)

A jakbyś teraz zmienił w tej samej bazie z powrotem z MyISAM na Inno to nadal masz te długie czasy?

Trick polegający na zmianie silnika z Inno na MyISAM i z powrotem powoduje pewną optymalizację i czyszczenie pustych dziur.
TomASS
Cytat(Pyton_000 @ 21.11.2017, 09:24:43 ) *
A wiesz jakie konsekwencje to za sobą poniosło?


tak - liczę się z tym (np. brak transakcji).
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-2024 Invision Power Services, Inc.