2009-09-09 17 views

Odpowiedz

7

Otwórz połączenie tylko raz. Otwieranie i zamykanie połączenia również trwa. Jak już powiedziałeś, PHP closes open connections at the end of the runtime automatically.

Po prostu zadzwoń mysql_connect, gdy potrzebujesz połączenia i pozwól PHP zamknąć je na końcu. mysql_connect sprawdza już istniejące połączenia, więc nie musisz się martwić, że wywołanie mysql_connect z tymi samymi parametrami spowoduje otwarcie nowego połączenia za każdym razem. Możesz także użyć persistent connections, który może być użyty do więcej niż jednego wykonania skryptu.

0

Może być lepiej użyć stałego połączenia lub puli połączeń.

0

Zazwyczaj dobrą praktyką jest zamykanie otwieranych połączeń i porządkowanie podczas jazdy.

Niezależnie od tego, czy chcesz otworzyć i zamknąć dla każdego zapytania, zależy to od aplikacji. Jeśli tylko bardzo rzadko wchodzi w interakcje z bazą danych, najlepiej byłoby zrobić to w ten sposób. Lub możesz chcieć trzymać pulę połączeń otwartych do użytku przez wszystkich, tylko otwierając nową, gdy wszystkie inne są aktualnie używane.

1

Z tego, co mam, lepiej jest pozostawić otwarte połączenie. Ale to zależy od zachowania twojej aplikacji. Jeśli wykonujesz ogromną liczbę obliczeń lub połączeń zewnętrznych, które może trochę potrwać do końca, lepiej jest zamknąć połączenie i otworzyć je ponownie po zakończeniu czasochłonnej części. Jeśli nie masz dużej liczby odwiedzających, w których możesz przekroczyć limit liczby połączeń sql, pozostaw połączenie otwarte przez cały czas. Ponowne otwarcie go zajmuje trochę czasu.

0

Połączyć się z bazą danych raz, podczas inicjalizacji skryptu; utrzymuj połączenie otwarte podczas wykonywania skryptu i wysyłaj kolejne zapytania za jego pośrednictwem.

Powyższe jest typowym scenariuszem użycia, w którym masz krótki skrypt PHP (prawdopodobnie na serwerze WWW) wykonujący wiele zapytań SQL. Jeśli Twój skrypt nie działa dłużej niż kilka godzin, nie przejmuj się zamykaniem połączenia między zapytaniami.

Za każdym razem, gdy łączysz się z serwerem SQL, zarówno skrypt PHP, jak i serwer muszą przejść (relatywnie) skomplikowaną negocjację: nawiązać połączenie przez sieć, sprawdzić, czy obie strony chcą mówić MySQL, sprawdzić, czy skrypt ma uprawnienia do łączenia, i tak dalej. Utrzymuj połączenie db, działa znacznie szybciej i wydajniej.

5

To naprawdę nie ma znaczenia. Jeśli twój skrypt PHP zamknie połączenie na końcu skryptu, nie ma sensu robić tego sam.

Jedynym powodem, dla którego chcesz umieścić ten dodatkowy kod w skrypcie, aby zamknąć połączenie po wykonaniu wszystkich zapytań, jest to, jeśli chcesz zwolnić trochę pamięci, np. Twój skrypt jest już głodny pamięci przy użyciu bibliotek takich jak GD2.

Zamknięcie połączenia po każdym zapytaniu i otwarcie kolejnego w celu wykonania kolejnego zapytania JEST głodny pamięci i ogromna strata czasu. W sumie, nie przejmuj się naprawdę!

2

Pozwól, że połączenie zostanie otwarte, jeśli twój skrypt losowo korzysta z połączenia. Jeśli istnieje grupa zadań, które korzystają z połączenia z pewnym odstępem czasu, można zamknąć połączenie po każdym zadaniu grupowym.

Powiązane problemy