2016-10-23 21 views
5

Mam dwa pliki:PHP/MYSQL - Wiele połączeń z tą samą bazą danych?

config.php:

$con = mysqli_connect("$dbhost","$dbuser","$dbpass","$dbname"); 

ads.php (config.php require_once):

$query1 = mysqli_query($con,"SELECT * From XXXX where id = 'XXXX'"); 

$query2 = mysqli_query($con,"SELECT * FROM XXXX2 WHERE id = 'XXXX2'"); 

Mam ponad 40 różnych zapytań mysqli_query() przy użyciu $con. Należy pamiętać, że cała moja logika jest stylem proceduralnym, a nie obiektowym.

Moje dwa pytania:

  1. mam podłączenia do DB przy użyciu innego połączenia na każdym zapytaniu? A może tylko raz, kiedy zostanie wykonany pierwszy? Czy jest lepszy sposób to zrobić?

  2. Rozumiem, że zamknięcie połączenia mysql nie jest obowiązkowe, ponieważ sam się zamyka, ale ponieważ mamy miliony konsultacji, czasami kilka z nich może się zawiesić i pozostać przez ponad 10 sekund po opuszczeniu pliku PHP przez użytkownika. Jeśli chciałbym zamknąć połączenie, czy powinienem umieścić mysqli_close ($ con) na końcu pliku (po 40 konsultacjach) lub na końcu każdej konsultacji (40 razy)?

Każda pomoc zostanie doceniona. Dzięki

+0

Jeśli twój kod działa, należy lepiej zadać swoje pytanie na http://codereview.stackexchange.com – phaberest

+1

Połączenie mysql jest używane nawet uporczywie przez wielu żądań HTTP. Cała reszta będzie naprawdę wielkim problemem wydajności. Oznacza to, że zamknięcie połączenia faktycznie spowolniłoby działanie. – arkascha

Odpowiedz

2

Używasz ponownie połączenia zainicjowanego w mysqli_connect.

Lepszym sposobem może być użycie lub utworzenie DataHandler'a i wdrożenie PDO. Może to pozwolić na wykonywanie analiz czasowych na kwerendach, automatyzowanie parametrów wiązania, niszczenie połączenia po jego zakończeniu itp.

Zadzwoń pod numer mysqli_close($con) na końcu pliku. Również null $con do oznaczenia do zbierania śmieci.

Po zakończeniu informacji z każdego kroku można również zadzwonić; mysqli_free_result($query1) do free memory związane z oświadczeniem obsłużyć

+1

Dziękuję, było pomocne. – Lucas

Powiązane problemy