Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: ilość max połączeń do bazy danych
Forum PHP.pl > Forum > PHP
jakis_login
Witam,
Mam sobie czat a w nim co 3 sekundy pobiera mi wyniki/posty z bazy danych. Co jakiś czas pojawia sie błąd:
Error!: SQLSTATE[42000] [1226] User 'test' has exceeded the 'max_user_connections' resource (current value: 60). Rozumiem, że chodzi o to ze jest za duża liczba użytkowników na raz. Jak to rozwiązać?
sowiq
Cytat(jakis_login @ 22.01.2014, 13:20:45 ) *
Rozumiem, że chodzi o to ze jest za duża liczba użytkowników na raz. Jak to rozwiązać?

Zmniejszyć ilość jednocześnie nawiązanych połączeń, albo zwiększyć limit. To chyba oczywiste?

http://www.php.net/manual/en/pdo.connections.php#example-902

http://dev.mysql.com/doc/refman/5.5/en/too...onnections.html
Wazniak96
Poczytaj o cachowaniu.
jakis_login
Zwiększenie limitu nie wchodzi w grę. Natomiast pewnie można zmniejszyć ilość połączeń do bazy. Tylko jakby to zrobić? Korzystam z PDO. sowiq dodałem to:
  1. array( PDO::ATTR_PERSISTENT => true)

ale nic nie pomogło. Generalnie chodzi mi o to ze mam setInterval w js wykonywany co 3s. I tam jest $.ajax'em pobieranie 200 ostatnich wpisów z bazy no i się zamula i wyskakują błędy. Problemu nie ma jeśli jest kilka użytkowników na stronie. Jakby to rozwiązać? Jak by zrobić to cachowanie, czy to pomoże?
phpion
Cytat(jakis_login @ 22.01.2014, 19:35:01 ) *
Jak by zrobić to cachowanie, czy to pomoże?

Tak. Poza tym: czy aby na pewno potrzebujesz aż 200 ostatnich wpisów? Nie wiem czym są te wpisy, ale wydaje mi się, że to za dużo.
jakis_login
Czy to ma aż taki duży wpływ jeśli z LIMIT 200 zrobię np. LIMIT 100 ?
Wazniak96
A co za problem zapisać powiedzmy te 100 wpisów w postaci zserializowanej tablicy do pliku i aktualizować plik po dodaniu nowego wpisu? A problem z głowy wink.gif
phpion
Cytat(jakis_login @ 23.01.2014, 22:20:18 ) *
Czy to ma aż taki duży wpływ jeśli z LIMIT 200 zrobię np. LIMIT 100 ?

Na ilość połączeń z bazą nie*, ale na ilość pobieranych i zwracanych danych - tak (w sumie to logiczne).

* W sumie pośrednio tak. Im dłużej czekasz na wynik zapytania tym dłużej masz nawiązane połączenie z bazą, więc w jednym czasie możesz mieć więcej równoczesnych połączeń. Najlepszym jednak wyjściem będzie zrzut danych do pliku i odpytywanie go zamiast bazy danych.
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-2025 Invision Power Services, Inc.