Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: MySQL wysoka liczba połączeń
Forum PHP.pl > Forum > Bazy danych > MySQL
Syaoran i Sakura
Dzień dobry.

Od jakiegoś czasu piszę skrypty PHP korzystające z bazy danych MySQL. Zwykle jest tak, że problem rozkładam na kawałki w postaci funkcji, z których większość łączy się z bazą danych, wykonuje zapytanie po czym kończy połączenie. Siłą rzeczy, bardziej skomplikowane skrypty potrafią wykonać aż pięćdziesiąt połączeń do bazy danych MySQL przy jednym odświeżeniu strony.

Chciałbym się dowiedzieć, czy powinienem zmienić strategię pisania programów, a mianowicie zrobić aby jedno odświeżenie strony powodowało nawiązanie mniejszej liczby połączeń, tzn. nawiązanie połączenia wykonujemy np. raz dla strony, zaś w funkcjach same zapytania do bazy danych MySQL czy pozostawić tak jak jest (czyli większość funkcji nawiązuje połączenie, pobiera określone dane (najczęściej wykonuje jedno zapytanie) i kończy połączenie. Zależy mi na tym aby przy dużym ruchu na stronie serwer bazy danych nie dostał grzyba i nie odmówił współpracy wypisując komunikaty typu: Przekroczona liczba połączeń, too many connections itp.
Crozin
W jakim celu każda z tych funkcji nawiązuje połączenie? Powinieneś korzystać z jednego połączenia w takim wypadku.
Syaoran i Sakura
Mam przez to rozumieć, że lepiej jest unikać tworzenia funkcji wywołujących połączenie, pobierających pojedyncze zapytanie a następnie rozłączających się i zamiast tego tworzyć skrypty, które na początku nawiązują połączenie, potem przetwarzają zapytania w funkcji (bez łączenia się i rozłączania się) zaś po pobraniu wszystkich niezbędnych danych rozłączają się? Jeżeli tak, to przerobię skrypt aby unikać częstego łączenia się i rozłączania się z bazą danych MySQL, przy czym i tak nie zbiję liczby zapytań, którą jednorazowo wykonuje kombinacja funkcji (pobranie danych o użytkowniku, sprawdzenie uprawnień, przygotowanie danych do tabelki, sprawdzanie parametrów itp.)
boro11
Witam, podłącze się pod pytani. Jakiś czas temu dostawca hostingu zgłosił się do mnie i stwierdził że mam za dużą liczbę połączeń. Limit był ustawiony na 150, zostałem zmuszony do rozszerzenia licencji co wiąże się z dość dużymi opłatami. Teraz strona działa bardzo dobrze, ale czy to normalne że jest tak duża liczba połączeń? Na stronie zazwyczaj jest 20-30 osób z liczba połączeń sięga 400-500. Jak zliczane są takie połączenia? 1 połączenie = 1 zapytanie do bazy?
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.