Gdy moja strona nie przekracza 15 klas, wtedy warto?
A np jak to jest rowiązane w większych projektach np profesjonalnych forach?
TESTY PRAKTYCZNEMyślę, że najlepiej jest po prostu sprawdzić

Będziemy liczyć stosunek: czas połączenia z bazą/czas wykonania zapytania.
W obu przypadkach użyta jest funkcja microtime oraz round z takimi samymi parametrami, tak więc przy liczeniu stosunku nie ma to znaczenia.
W bazie 'sm' znajduje się tabela 'admins':
adminid(tinyint) - login(char(32)) - password(char(32))
oraz 10 rekordów
---------- Sytuacja idealna (1user) ------------Kod ustalający ile trwa łączenie w sytuacji idealnej (1 user, serer na jednym komputerze z klientem):
function connect(){
$con = new mysqli('localhost', 'root', '', 'sm');
}
connect();
?>
Kod ustalający ile trwa czas zapytania:
<?php
$con = new mysqli('localhost', 'root', '', 'sm');
$q =
"select * from admins";
$con->query($q);
?>
Wyniki(średnia "na oko")
połączenie: 0,001
zapytanie: 0,0002
połączenie/zapytania = 5
---------- Sytuacja idealna - kod symulujący pracę między zapytaniami ----------Kod z wieloma połączeniami
<?php
function delay(){
$a= 0;
$b =0;
$c =0;
for($i=0; $i<=50; $i++, $a++, $b+=2){
$c = $a + $b;
}
}
function query(){
$con = new mysqli('localhost', 'root', '', 'sm');
$q =
"select * from admins";
$con->query($q);
$con->close();
}
function action(){
for($i=0; $i<5; $i++){
query();
delay();
}
}
action();
?>
Kod z ciągłym połączeniem:
<?php
function delay(){
$a= 0;
$b =0;
$c =0;
for($i=0; $i<=50; $i++, $a++, $b+=2){
$c = $a + $b;
}
}
function query($con){
$q =
"select * from admins";
$con->query($q);
}
function action(&$con){
for($i=0; $i<5; $i++){
query($con);
delay();
}
}
$con = new mysqli('localhost', 'root', '', 'sm');
action($con);
?>
Wyniki:
Ciągłe utrzymywanie w znacznej większości przypadków nieznacznie szybsze od przerywanego.
PodsumowaniePonowne łączenie kosztuje nieznaczne ilości czasu, jednak przy małych odstępach czasu między kolejnymi zapytaniami warto połączenie utrzymać.
Przy dużej liczbie zapytań łączenie i zamykanie połączenia przy każdym zapytaniu jest już nieładną praktyką i nie sprzyja wydajności.
Ktoś może się pokusić o przeprowadzenie innych testów, lub sprawdzenie wyników. Myślę, że mogą się nawet znacznie różnić.
Wiem, że nie odkryłem tutaj ameryki, ale może ktoś wpisując w google "czy podtrzymywać połączenie z bazą" będzie miał jaśniejszy obraz sytuacji.
Można też po prostu wykonać testy praktyczne swojego skryptu.
Pozdrawiam - mam nadzieje, że komuś to pomogło.