![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 141 Pomógł: 7 Dołączył: 22.02.2009 Ostrzeżenie: (0%) ![]() ![]() |
Witam,
Dziś kieruj pytanie do tych doświadczonych jak zoptymalizować bazę. problem jest taki że istnieje sobie strona która do wygenerowania jednej strony potrzebuje 400-700 zapytań są to głównie proste SELECT z WHERE. i czy optymalnie jest wysłać powiedzmy 50 takich pojedynczych zapytań czy zrobić to na zasadzie WHERE IN(...)..ORDER i resztę operacji wykonać po stronie PHP? Połączenie z mysql jest stałe (do tego mysql nie mysqli), nie wiem czy to najlepszy pomysł. Do tego dochodzi jeszcze AJAX/SOCKET który odpytuje bazę co jakieś 5s, oczywiście w znacznie mniejszej ilości zapytań. Przy 2k osób w jednym momencie na stronie zaczynają się poważne lagi. Czy można jakoś zasymulowac na localhoscie takie obciążenie i w jaki sposób wtedy znaleźć wąskie gardło? |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 22 Dołączył: 17.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
A może po prostu zastosowanie zwykłych left join załatwi sprawę, bo domyślam się, że te 400-700 zapytań generuje pętla zapytania mysql, która odpytuje w sobie bazę o inne rzeczy?
Sam osobiście mam teraz pod opieką taki duży system, napisany w podobny sposób. Optymalizacja tego jest czasochłonna i po prostu, zwiększyliśmy zasoby serwerowe dla tego projektu i jest ok. |
|
|
![]()
Post
#3
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
@Bobek z opisu podane przez autora wynika bardziej, ze ma on iles tam IDkow i dla kazdego pokolei robi zapytanie.
Ale to tylko gdybanie, najlepiej by bylo jakby autor uraczyl nas konkretnym kodem to mozna by wtedy cos moze i pomoc. ps: czasami probuje sobie wyobrazic co myslal programista, ktory pisal takie rzeczy, ale nie potrafie.... ![]() -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 143 Pomógł: 22 Dołączył: 17.11.2007 Ostrzeżenie: (0%) ![]() ![]() |
@nospor chodzi Ci o zapytania do mysql w pętli?
Hm ostatnio miałem okazję się przekonać, że nie jest to takie "głupie" bo była pętla która jechała się 1000 razy i wykonywała po kilka zapytań wewnątrz. Tabele były typu MyISAM. Wszystko ładnie działało, aż przepisałem to na jedno zapytanie, które wykonywało się 10 s i blokowało te tabele - czas zapytania nie jest tutaj problemem bo to robił cron, ale użytkownicy mieli na 10 s zablokowany dostęp do tabel. Wiadomo wystarczy zmiana na silnik InnoDB ale jeśli ktoś chce pozostać przy MyISAM to jest to jakieś wyjście:P Oczywiście to, że nie jest to taki głupie to z przymrużeniem oka ![]() |
|
|
![]()
Post
#5
|
|
![]() Grupa: Moderatorzy Postów: 36 557 Pomógł: 6315 Dołączył: 27.12.2004 ![]() |
Metode nalezy dobrac do sytuacji. W jednej sytuacji sprawdzi sie jedna, w innej druga. Dodatkowo trzeba tez umiejetnie uzyc danej metody, bo moze sie okazac ze metoda jest ok, tylko jej uzycie juz nie koniecznie
![]() Dlatego poczekajmy na kod od autora. -------------------- "Myśl, myśl, myśl..." - Kubuś Puchatek || "Manual, manual, manual..." - Kubuś Programista "Szukaj, szukaj, szukaj..." - Kubuś Odkrywca || "Debuguj, debuguj, debuguj..." - Kubuś Developer |
|
|
![]() ![]() |
![]() |
Wersja Lo-Fi | Aktualny czas: 30.06.2025 - 05:15 |