d0m1n1k_
27.08.2021, 19:48:18
Witam wszystkich
od kilku godzin szukam odpowiedzi na pytanie:
Czy lepiej jest wykonać jedno bardzo rozbudowane, zawiłe zapytanie do MySQL czy raczej kilka mniejszych?
Pytam przede wszystkim o efektywność czasową, obciążenie serwera, czas reakcji.
Z założenia SQL to język prostych zapytań, a korzystając z ciężkiego kalibru połączenia wielu tabel, relacji itd przestaje być powiedzmy prostym.
Czy to ma w ogóle jakiś wpływ na szybkość działania?
Na marginesie - mówimy tu o bardzo dużej bazie danych, z blisko 100 tabel mocno ze sobą współpracujących których jednak nie dało się / nie można było połączyć w mniejszą ilość.
Z góry dziękuję za pomoc.
Pozdrawiam.
gitbejbe
28.08.2021, 18:05:49
Napisz taką i taką wersje i sprawdź która lepiej działa i ewentualnie wrzuć obydwie tutaj to coś może uda się jeszcze usprawnić.
d0m1n1k_
29.08.2021, 13:12:22
Na chwilę obecną obie wydają się działać w bardzo podobnym czasie.
Czas zapytania dla obu wersji to średnio 1,000322 sekundy - chociaż aktywacja jednego pliku potrafi nam zjeść wszystkie zasoby serwera na kilkadziesięt sekund co przy całości osadzonej na dyskach SSD, 128GB RAMu i fajnych dwóch Xeonach robi wrażenie.
Ale, problemem jest coś innego - każdego dnia baza powiększa się już nie liniowo a wykładniczo.
Na początku roku baza miała 180MB i przyrost był na poziomie kilkset kB, obecnie są to już dwu cyfrowe MB, a bywały dni, że przyrost bazy danych wynosił nawet równowartość jej wielkości z początku roku!
W dzisiejszych czasach, gdzie każdy ma w domu dysk 1TB i więcej, liczba kilkunastu MB przyrostu dziennego wydaje się malutka, ale proszę pamiętać, że mówimy tu o - jakby na to nie popatrzył - tekście i coraz większym przyroście dziennym.
To nie są zdjęcia czy filmy, to tekst. Który zaczyna być kolosalnie duży.
I dlatego zadałem pytanie - zanim będzie problem.
Czy warto się pchać w dużą ilość prostych zapytań czy w małą ilość wielkich i skomplikowanych zapytań?
nospor
29.08.2021, 18:30:13
To naprawde zalezy.
Ja generalnie jestem zwolennikiem malej ilosci zapytan ale raz mialem taka sytuacje ze jedno zapytanie niestety bylo nieoptymalne. Rozbilem to na kilka mniejszych i bylo o niebo lepiej.
Takze naprawde zalezy
Pyton_000
30.08.2021, 09:51:25
Nie podałeś żadnych konkretów więc odpowiem przewrotnie - to zależy.
Jakie to zapytania, jakie dane, ile tych danych, z jakiego okresu, czy baza to pojedyńcza maszyna czy cały Cluster, czy może zwykła replikacja. Zobacz Explain z obu zapytań, jakie wersje MySQL (wersje, czy to Percona, Maria czy może czysty mysql), jakieś optymalizacje na configach były robione, jak wygląda ilość indeksów.... Mogę tak do rana wymieniać. Nikt nie da Ci tu odpowiedzi na pytanie 1 czy wiele zapytań bo to zależy od wielu czynników. Ba nawet od ilości parametrów w zapytaniu....
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.