SELFPHP: Version 5.8.2 Befehlsreferenz - Tutorial – Kochbuch – Forum für PHP Einsteiger und professionelle Entwickler

SELFPHP


Professional CronJob-Service

Suche



CronJob-Service    
bei SELFPHP mit ...



 + minütlichen Aufrufen
 + eigenem Crontab Eintrag
 + unbegrenzten CronJobs
 + Statistiken
 + Beispielaufrufen
 + Control-Bereich

Führen Sie mit den CronJobs von SELFPHP zeitgesteuert Programme auf Ihrem Server aus. Weitere Infos



:: Buchempfehlung ::

Der CSS-Problemlöser

Der CSS-Problemlöser zur Buchempfehlung
 

:: Anbieterverzeichnis ::

Globale Branchen

Informieren Sie sich über ausgewählte Unternehmen im Anbieterverzeichnis von SELFPHP  

 

:: Newsletter ::

Abonnieren Sie hier den kostenlosen SELFPHP Newsletter!

Vorname: 
Name:
E-Mail:
 
 

Zurück   PHP Forum > SELFPHP > MySQLi/PDO/(MySQL)

MySQLi/PDO/(MySQL) Anfänger, Fortgeschrittene oder Experten können hier Fragen und Probleme rund um MySQLi/PDO/(MySQL) diskutieren

Antwort
 
Themen-Optionen Ansicht
  #1  
Alt 30.09.2009, 14:52:58
_squee_ _squee_ ist offline
Anfänger
 
Registriert seit: Aug 2009
Alter: 35
Beiträge: 47
Performanceverlust bei Datenbankzugriff

Hallo zusammen,

ich sitze da so da und überlege mir wie ich aus meinem PHP Script auf die Datenbank zu greifen werde. Da fällt mir ein, dass ich mal gelesen habe, dass man bei jedem Zugriff eine neue Verbindung aufbauen und danach wieder schließen soll.

Kann mir Jemand den Unterschied [vorallem in anbetracht der Zeit] zwischen den zwei folgenden Abläufen erklären?
Bei welcher Methode habe ich mehr Zeitverlust.

1.

<?PHP
//Verbindung zur DB wird aufgebaut

...

//etwas wird aus der DB ausgelesen

...

//etwas wird in die DB eingefügt


...

//etwas wird aus der DB ausgelesen

...

//etwas wird in die DB eingefügt


//Verbindung zur DB wird beendet
?>

2.

<?PHP
//Verbindung zur DB wird aufgebaut
//etwas wird aus der DB ausgelesen
//Verbindung zur DB wird beendet

...

//Verbindung zur DB wird aufgebaut
//etwas wird in die DB eingefügt
//Verbindung zur DB wird beendet

...

//Verbindung zur DB wird aufgebaut
//etwas wird aus der DB ausgelesen
//Verbindung zur DB wird beendet

...

//Verbindung zur DB wird aufgebaut
//etwas wird in die DB eingefügt
//Verbindung zur DB wird beendet
?>


mfg squee
Mit Zitat antworten
  #2  
Alt 30.09.2009, 15:01:58
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Performanceverlust bei Datenbankzugriff

Zitat:
Zitat von _squee_ Beitrag anzeigen
Bei welcher Methode habe ich mehr Zeitverlust
liegt das nicht auf der hand?

methode 1:

db-verbindung aufbauen: 1x
db-verbindung beenden: 1x

methode 2:

...

Zitat:
Zitat von _squee_ Beitrag anzeigen
dass man bei jedem Zugriff eine neue Verbindung aufbauen und danach wieder schließen soll.
hierbei gehts um persistente verbindungen, die entsprechende resourcen binden (bspw. maximale anzahl möglicher verbindungen zur db). bei php ist das i.a. irrelevant - nach beendigung des skripts wird die verbindung zur db sowieso gekappt.

cx
Mit Zitat antworten
  #3  
Alt 30.09.2009, 15:09:56
_squee_ _squee_ ist offline
Anfänger
 
Registriert seit: Aug 2009
Alter: 35
Beiträge: 47
AW: Performanceverlust bei Datenbankzugriff

Ich habe das mit dem Öffnen vor und Beenden nach der Sql-Anweisung in einem Bericht allgemeint über Datenbanken gelesen.

Zitat:
die entsprechende resourcen binden (bspw. maximale anzahl möglicher verbindungen zur db). bei php ist das i.a. irrelevant
Wenn das in PHP nicht zu beachten ist, dann liegt die Antwort allerdings klar auf der Hand.

vielen Dank
Mit Zitat antworten
  #4  
Alt 30.09.2009, 15:20:05
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Performanceverlust bei Datenbankzugriff

Zitat:
Zitat von _squee_ Beitrag anzeigen
Wenn das in PHP nicht zu beachten ist, dann liegt die Antwort allerdings klar auf der Hand.
darauf wollte ich nicht hinaus, sondern:

Zitat:
Zitat von cortex Beitrag anzeigen
methode 1:

db-verbindung aufbauen: 1x
db-verbindung beenden: 1x

methode 2:

...
zähl doch mal selbst durch, wie oft die verbindung zur db bei der zweiten methode auf- und wieder zugerissen wird. das offensichtliche ist oft das einfachste .-

cx
Mit Zitat antworten
  #5  
Alt 30.09.2009, 15:29:08
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Performanceverlust bei Datenbankzugriff

Falsch!
Alles falsch! (oder auch nicht, je nach dem)

1. Dass man Verbindungen frühzeitig wieder schließt, ist für langlaufenden Applikationen evtl. wichtig. Beispiel: In einer Behörde reiten 2000 Applikationen tagelang auf der DB rum. Die DB kann aber nur (angenommene) 1000 Verbindungen offen halten.
2. PHP Scripte laufen in der Regel nur Bruchteile von Sekunden. Da macht das dauernde Schließen/Öffnen gar keinen Sinn.
Mit Zitat antworten
  #6  
Alt 30.09.2009, 15:39:25
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Performanceverlust bei Datenbankzugriff

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
Dass man Verbindungen frühzeitig wieder schließt, ist für langlaufenden Applikationen evtl. wichtig.
langlaufend und php-applikation ist zumindest ein widerspruch in sich. nicht umsonst gibt es eine max. skriptlaufzeit. cronjobs würde ja auch niemand in php realisieren.

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
PHP Scripte laufen in der Regel nur Bruchteile von Sekunden. Da macht das dauernde Schließen/Öffnen gar keinen Sinn.
eben...

cx
Mit Zitat antworten
  #7  
Alt 30.09.2009, 15:56:39
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Performanceverlust bei Datenbankzugriff

Zitat:
langlaufend und php-applikation ist zumindest ein widerspruch in sich. nicht umsonst gibt es eine max. skriptlaufzeit. cronjobs würde ja auch niemand in php realisieren.
Da muß ich jetzt mal ernsthaft Einspruch einlegen!

Das Timelimit greift im CLI Modus nicht, bzw ist automatisch auf 0 gesetzt, egal was in der php.ini steht.

Nagut, lang laufende Scripte im Webserver sind ein Wiederspruch in sich. Wegen den ganzen Timeouts an den vielen Ecken. Und dem blockierten Apacheslot. Gerätetreiber sind dank der fehlenden Hardware Nähe unmöglich, bis schwierig zu realisieren. Aber das gilt auch für viele weitere, der im Web üblichen Sprachen. Z.B. JavaScript, Perl, ruby, phyton
Aber das war es dann auch schon.

Es gibt nichts gegen PHP Scripte im Cron zu sagen. Auch per Aufruf über xinetd lassen sich PHP Scripte problemlos betreiben. Einzig die fehlende Thread Unterstützung macht es problematisch.

Fazit: PHP ist eine ganz normale Programmiersprache!
Mit ihr ist (fast)alles möglich, was auch mit den anderen möglich ist.
Mit Zitat antworten
  #8  
Alt 30.09.2009, 17:48:40
schrubba schrubba ist offline
Anfänger
 
Registriert seit: May 2008
Beiträge: 110
AW: Performanceverlust bei Datenbankzugriff

Hi,

das passt jetzt so gut, daß ich an dieser Stelle gleich mal nachfragen muss.. ;)

Ich teste zur Zeit auch serverseitige PHP-Scripte, die anliegende Events abarbeiten. Aktuell läuft ein "Endlos-Script", realisert über eine Endlosschleife und bis jetzt läuft dies absolut fehlerfrei und so wie gewollt. Am Anfang dieser Schleife gibts ein sleep(1) um anderen Prozessen noch Zeit zu lassen.

Läuft wie bereits erwähnt soweit einwandfrei, aber wenn ich hier nun lese, daß es Probleme geben könnte wegen etlichen Timeouts an einigen Ecken, mache ich mir doch Sorgen, ob diese Lösung die Beste ist?


Gruß
schrubba
Mit Zitat antworten
  #9  
Alt 30.09.2009, 18:04:18
cortex cortex ist offline
SELFPHP Profi
 
Registriert seit: Apr 2008
Alter: 48
Beiträge: 1.938
AW: Performanceverlust bei Datenbankzugriff

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
Das Timelimit greift im CLI Modus nicht, bzw ist automatisch auf 0 gesetzt, egal was in der php.ini steht.
ok, wieder was dazu gelernt.

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
Es gibt nichts gegen PHP Scripte im Cron zu sagen.
im cron nicht, aber irgendwer / irgendwas muss den cron ja anstossen...

Zitat:
Zitat von DokuLeseHemmung Beitrag anzeigen
PHP ist eine ganz normale Programmiersprache!
das würde ich nie bestreiten .-

cx
Mit Zitat antworten
  #10  
Alt 30.09.2009, 18:15:49
DokuLeseHemmung DokuLeseHemmung ist offline
SELFPHP Experte
 
Registriert seit: Jun 2008
Alter: 15
Beiträge: 2.269
AW: Performanceverlust bei Datenbankzugriff

Zitat:
Zitat von cortex Beitrag anzeigen
im cron nicht, aber irgendwer / irgendwas muss den cron ja anstossen...
Bahnhof!
Das macht der doch selber... jede volle Minute.
Mit Zitat antworten
Antwort


Aktive Benutzer in diesem Thema: 1 (Registrierte Benutzer: 0, Gäste: 1)
 
Themen-Optionen
Ansicht

Forumregeln
Es ist Ihnen nicht erlaubt, neue Themen zu verfassen.
Es ist Ihnen nicht erlaubt, auf Beiträge zu antworten.
Es ist Ihnen nicht erlaubt, Anhänge hochzuladen.
Es ist Ihnen nicht erlaubt, Ihre Beiträge zu bearbeiten.

BB-Code ist an.
Smileys sind aus.
[IMG] Code ist aus.
HTML-Code ist aus.

Gehe zu

Ähnliche Themen
Thema Autor Forum Antworten Letzter Beitrag
Datenbankzugriff klappt mit Mozilla nicht yoshi MySQLi/PDO/(MySQL) 13 23.01.2007 09:19:42
Universieller Datenbankzugriff dino-it PHP Grundlagen 1 13.02.2006 09:02:42
datenbankzugriff auf einen fremden SQL-server taliesin PHP für Fortgeschrittene und Experten 1 15.01.2003 17:40:00
Datenbankzugriff mit ODBC Marco Hemmerle PHP für Fortgeschrittene und Experten 2 22.11.2002 20:29:55


Alle Zeitangaben in WEZ +2. Es ist jetzt 14:32:57 Uhr.


Powered by vBulletin® Version 3.8.3 (Deutsch)
Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.


© 2001-2024 E-Mail SELFPHP OHG, info@selfphp.deImpressumKontakt