Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: [PHP][MYSQL]Polaczenie z baza a obciazenie serwera
Forum PHP.pl > Forum > Przedszkole
yalus
witam

czy umieszczenie takiego oto kodu na poczatku strony ma duzy wplyw na obciazenie serwera:

  1. <?php
  2. $link = mysql_connect("serwer_mysql", "log", "psw")
  3. or die ("Could not connect to MySQL (db_connect)");
  4.  
  5. mysql_select_db (dbName)
  6. or die ("Could not select database (db_connect)");
  7.  
  8. extract($_SERVER);
  9. $zapytanie1="INSERT into visitors SET
  10. ip='".$REMOTE_ADDR."',
  11. date='".date("Y:m:d H:i:s")."'";
  12. $result1 = mysql_query($zapytanie1);
  13. ?>


i jak to obciazenie sie zmienie jak dodam:

  1. <?php
  2. mysql_close($link);
  3. ?>
erix
Nie rozumiem trochę pytania...

Skoro korzystasz z DB, to chyba musisz zestawić z nią połączenie, nie (pomijam płaskie bazy)? Każde nowe połączenie obciąża w jakimś stopniu serwer. ;]
dado
Jest to owszem obciążenie serwera, choć minimalne to jednak niezbędne do pobrania czegokolwiek z bazy danych
piotrooo89
ja osobiście nie wyobrażam sobie twojej pracy na niepołączonej bazie danych... to tak jakbyś chciał jechać wyłączonym autem, spalisz trochę paliwa ale dojedziesz do celu. tu jest tak samo: obciążysz trochę serwer ale wykonasz co trzeba.
yalus
tak faktycznie mozna nie zrozumiec pytanie, juz podaje wiecej szczegolow

dokladnie rzecz biorac kazda moja strona zaczyna sie od:

  1. <?php
  2. $link = mysql_connect("serwer_mysql", "log", "psw")
  3. or die ("Could not connect to MySQL (db_connect)");
  4.  
  5. mysql_select_db (dbName)
  6. or die ("Could not select database (db_connect)");
  7.  
  8. extract($_SERVER);
  9. $zapytanie1="INSERT into visitors SET
  10. ip='".$REMOTE_ADDR."',
  11. date='".date("Y:m:d H:i:s")."'";
  12. $result1 = mysql_query($zapytanie1);
  13. ?>


poprosty chce miec zapisywane do bazy kto i kiedy wchodzi na poszczegolne strony

i teraz skaczac ze strony na strone ja rozpoczynam nowe polaczenie
chodzi mi o to czy jak jakis user bedzie bardzo aktywnie przegladal stronki to czy te nowe polaczenia (nie zapytania) beda mocno obciazaly serwer
bo polaczenie jest przechwywane tutaj:

  1. <?php
  2. $link
  3. ?>


prwda?
l0ud
yalus, ale KAŻDY SKRYPT PHP używający mysql tworzy połączenie po jego wywołaniu! smile.gif A najlepiej użyj funkcji mysql_pconnect() - wtedy na większości serwerów połączenie będzie tylko raz otwierane, a później wykorzystywane przy każdym następnym wywołaniu skryptu.
yalus
ok, dzieki
piotrooo89
można sobie też w osobnym pliku napisać logowanie do bazy i później tylko includować ale nie wiem czy to jakoś znacząco przyspieszy lub przyczyni sie do mniejszego obciążenia serwera.
Shili
Ze stałymi połączeniami problem jest taki, że na niektórych serwisach łatwo jest przekroczyć limit dozwolonych jednoczesnych połączeń.
f1xer
Cytat
chodzi mi o to czy jak jakis user bedzie bardzo aktywnie przegladal stronki to czy te nowe polaczenia...

Jeżeli nie zamkniesz połączenia w skrypcie to zamknie się ono samo po wykonaniu całego skryptu więc będziesz miał aktywne tylko jedno połączenie, wiele dużych skryptów mają właśnie na początku łączenie się z bazą i jakoś nie widać żeby znacząco to obciążało serwer, bardziej skup się na konstruowaniu szybkich zapytań bo źle skonstruowane rozbudowane zapytanie może znacząco wpłynąć na czas wykonywania skryptu.
Pilsener
Dokładnie. Poza tym ja nie polecam takich machinacji - przy dużym ruchu niepotrzebnie spowalniają bazę. Zamiast każdego wysłania strony do przeglądarki może lepiej zliczać klikanie w linki? Co więcej - do gromadzenia informacji o użytkowniku (co robi, jak długo, gdzie klika, co klika etc) polecałbym cookies - na podstawie cookies możesz też wyświetlać użytkownikowi np. reklamy z działu, który najbardziej go interesuje (np. pralko-suszarki czy coś tam) a co jakiś czas informacje odczytane z ciastek wrzucasz po prostu do bazy i na podstawie tego robisz analizy. Oczywiście część userów kasuje ciacha albo ma je wyłączone, ale chodzi przecież o statystyki, a nie aptekarską dokładność. Poza tym wyłączoną obsługę cookies mają na 90% różne boty, więc dodatkowo zyskujemy smile.gif
l0ud
Shili, opisz proszę dokładniej ten problem zajmowania wszystkich dostępnych połączeń przy użyciu mysql_pconnect() smile.gif Według mnie taki nie występuje bo skrypt wykorzystuje istniejące, wolne połączenia. Jeżeli będzie więcej żądań na sekundę to i tak połączeń zabraknie, również w przypadku używania mysql_connect(). No chyba że o czymś nie wiem? smile.gif
Shili
Jeśli uruchomione są procesy potomne otwierające takie połączenie to istnieje zagrożenie. Bardziej dokładnie zapewne jest w manualu. Są tam też opisane inne rzeczy, które mogą nie być zbyt przyjemne w przypadku stałych połączeń.

Oczywiście, trzeba zawsze rozważyć wszystkie za i przeciw, w końcu każde rozwiązanie ma plusy i minusy smile.gif
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę kliknij tutaj.
Invision Power Board © 2001-2025 Invision Power Services, Inc.