Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [MySQL][Typo3] Przekroczony limit połączeń do bazy, mysql_connect i myslq_pconnect
windman
post
Post #1





Grupa: Zarejestrowani
Postów: 184
Pomógł: 13
Dołączył: 7.01.2008

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


Witam,

Mam pewien problem z jedną stroną zbudowaną na Typo3.
Strona rejestruje kilkuset użytkowników na dobę.
Pojawił się ostatnio problem z limitem połączeń do bazy MySQL / 100.
Typo3 chodzi na mysql_pconnect.
Na stronie jest też umieszczony mały skrypt wykonujący połączenie do innej bazy (ten sam host), użytkownik inny niż dla Typo3.
Skrypt to proste zapytanie, nie ma mowy o zapętleniu.

Skoro mysql_connect i mysql_pconnect wykorzystują jedno połączenie dla danego usera (Typo3 i skrypt to łącznie 2 oddzielne połączenia) to skąd ten problem z limitem?

Do głowy przychodzi mi jedno rozwiązanie:
Wspomniany skrypt pobiera także za pomocą funkcji fopen zdjęcie z kamery internetowe (inny host). Plik ten nie zawsze jest dostępny, przy większej liczbie zapytań funkcja nie działa zbyt sprawnie.
Czy to, że czas wykonywania skryptu nie jest optymalny może wpłynąc na liczbę połączeń do MySQLa?

Pozdrawiam

Ten post edytował windman 3.03.2009, 11:13:45
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
ucho
post
Post #2





Grupa: Zarejestrowani
Postów: 300
Pomógł: 32
Dołączył: 31.07.2006

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


50 jednoczesnych requestów:
- connect() - stara się utworzyć 50 nowych połączeń
- pconenct() - jeśli jest mniej niż 50 wolnych połączeń to postara się stworzyć brakujące połączenia
Przy limicie np. 30 połączeń żadne nie przejdzie (IMG:http://forum.php.pl/style_emoticons/default/smile.gif) Mysqli_* raczej rządzi się takimi samymi prawami co zwykły mysql_*, i zliczany jest tak samo. Jedyne co możesz/powinieneś zrobić to zoptymalizować zapytania sql i zwalniać połączenie jak tylko nie jest potrzebne i/lub łączyć się dopiero gdy jest to potrzebne
Go to the top of the page
+Quote Post
windman
post
Post #3





Grupa: Zarejestrowani
Postów: 184
Pomógł: 13
Dołączył: 7.01.2008

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


Cytat(ucho @ 3.03.2009, 14:38:17 ) *
50 jednoczesnych requestów:
- connect() - stara się utworzyć 50 nowych połączeń

Najwyraźniej coś źle zrozumiałem...

Po przeczytaniu tego ...

"Jeśli, ponownie wywołamy mysql_connect() z tymi samymi argumentami, nie zostanie nawiązane nowe połączenie, lecz zamiast tego, zostanie zwrócony identyfikator obecnie otwartego połączenia. Parametr nowe_połączenie modyfikuje to zachowanie i sprawia, że mysql_connect() zawsze otwiera nowe połączenie"

... myślałem, żę mysql_connect() używa już otwartego połączenia, jeżeli to istnieje... więc jak jest?

Ten post edytował windman 3.03.2009, 15:58:01
Go to the top of the page
+Quote Post

Posty w temacie


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

 



RSS Aktualny czas: 12.10.2025 - 15:06