![]() |
![]() |
![]()
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 |
|
|
![]() |
![]()
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 |
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 184 Pomógł: 13 Dołączył: 7.01.2008 Ostrzeżenie: (0%) ![]() ![]() |
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 |
|
|
![]() ![]() |
![]() |
Aktualny czas: 12.10.2025 - 15:06 |