Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> ilość max połączeń do bazy danych
jakis_login
post
Post #1





Grupa: Zarejestrowani
Postów: 169
Pomógł: 1
Dołączył: 30.09.2010
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


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ć?
Go to the top of the page
+Quote Post
sowiq
post
Post #2





Grupa: Zarejestrowani
Postów: 1 890
Pomógł: 339
Dołączył: 14.12.2006
Skąd: Warszawa

Ostrzeżenie: (0%)
-----


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

Ten post edytował sowiq 22.01.2014, 13:30:43
Go to the top of the page
+Quote Post
Wazniak96
post
Post #3





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

Ostrzeżenie: (0%)
-----


Poczytaj o cachowaniu.
Go to the top of the page
+Quote Post
jakis_login
post
Post #4





Grupa: Zarejestrowani
Postów: 169
Pomógł: 1
Dołączył: 30.09.2010
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


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?

Ten post edytował jakis_login 22.01.2014, 21:44:50
Go to the top of the page
+Quote Post
phpion
post
Post #5





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post
jakis_login
post
Post #6





Grupa: Zarejestrowani
Postów: 169
Pomógł: 1
Dołączył: 30.09.2010
Skąd: Gdańsk

Ostrzeżenie: (0%)
-----


Czy to ma aż taki duży wpływ jeśli z LIMIT 200 zrobię np. LIMIT 100 ?
Go to the top of the page
+Quote Post
Wazniak96
post
Post #7





Grupa: Zarejestrowani
Postów: 550
Pomógł: 75
Dołączył: 5.06.2012
Skąd: Lębork

Ostrzeżenie: (0%)
-----


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
Go to the top of the page
+Quote Post
phpion
post
Post #8





Grupa: Moderatorzy
Postów: 6 072
Pomógł: 861
Dołączył: 10.12.2003
Skąd: Dąbrowa Górnicza




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.
Go to the top of the page
+Quote Post

Reply to this topicStart new topic
1 Użytkowników czyta ten temat (1 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 21.08.2025 - 05:45