PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : [ Frage ] MySQL Funktionen


pate33
21.03.2002, 16:05
Hi,

ich hab ausnahmsweise auch mal wieder ne frage... :D

ich hab in meinem projekt (umgebung: win2kpro + apache + mysql) ne page laufen, mit nem mysql_connect() und nem mysql_close() und trotzdem laeuft die process liste mit ´schlafenden´ prozressen zu... kann mir das jemand erklaeren?
bzw. wo kann ich da nachschauen, wieso das net geht?
thanks


Apraxas
29.03.2002, 02:55
Nutz einfach "mysql_pconnect" statt "mysql_connect"!
PHP schließt dann die Session automatisch, wenn das Script fertig abgearbeitet is! :D

In PHP 4.10 hats allerdings einen bug ?:(

Felix Kaiser
29.03.2002, 12:05
Is mir ja noch garnicht aufgefallen, aber laut dem Adminteil was bei MySQL dabei ist, isses nur ein Prozess, der dann permanent offen ist. Sinds bei dir mehr? Zu mal ich sagen würde, wenn dieser Prozess meine Datenbank offen hält, ist weiterer Zugriff (weitere Connections) schneller als wenn er immer einen neuen Prozess öffnen muss.

Apraxas
29.03.2002, 12:23
Nö, bei is es immer nur ein Thread (unter Windows).

Unter Linux schaut das ganze dann komplett anders aus, da gibts jaden Deamon, der je nach bedarft weitere Threads öffnet, da ist es dann v.a. wichtig, dass die Connects geschlossen werden!

Das mit dem neuen Prozess öffnen hat schon auch seine Vorteile: Wenn du nur einen Threat hast und der is ausgelastet suckts bei allen, die diesen Thread benutzen. Wenn die Last auf mehrere verteilt wird suckts dann nur bei wenigen und die Last ist schneller wieder weg....

Felix Kaiser
29.03.2002, 12:44
Hey, ich hab .NET Enterprise Server und ob der Linux Server von meinem Provider dann Resourcenmäßig auf dem letzten Loch pfeift is mir egal :D:D:D

Aber afaik ist es egal wieviele Threads, einer alleine spart Resourcen ein, aber die absolute Rechenzeit wird dadurch nicht beeinflusst. Wie die jetzt verteilt wird ist wohl egal. Bei dem einen bleibt permanent mehr Rechenkapazität frei, bei dem andern is kurzfristig nur wenig Rechenkapazität frei.

Aber normal ist es wohl eher so, da MySQL über eine Client-Server-Verbindung arbeitet, ist es ja nicht so, dass eine neue Anfrage erst bearbeitet wird wenn die letzte fertig ist, sondern es wird so abgearbeitet wie es kommt. Bringt den Vorteil, dass wenn bei einer Verbindung auf weitere Queries gewartet wird, derweile andere Queries von anderen Verbindungen abgearbeitet werden können.

Apraxas
29.03.2002, 13:48
Nanana, wer wird denn glei nen .net server installieren...

Das mit dem Provider sollte es aber nicht!

Aber afaik ist es egal wieviele Threads, einer alleine spart Resourcen ein, aber die absolute Rechenzeit wird dadurch nicht beeinflusst. Wie die jetzt verteilt wird ist wohl egal. Bei dem einen bleibt permanent mehr Rechenkapazität frei, bei dem andern is kurzfristig nur wenig Rechenkapazität frei.
bei dir Local JA, bei größeren angelegenheiten hat sich einfach gezeigt, dass es mit mehreren Prozessen stabieler läuft..

Aber normal ist es wohl eher so, da MySQL über eine Client-Server-Verbindung arbeitet, ist es ja nicht so, dass eine neue Anfrage erst bearbeitet wird wenn die letzte fertig ist, sondern es wird so abgearbeitet wie es kommt. Bringt den Vorteil, dass wenn bei einer Verbindung auf weitere Queries gewartet wird, derweile andere Queries von anderen Verbindungen abgearbeitet werden können.

klar, werden Anfragen Paralell bearbeteitet, möcht nur sehen wie du das schaffst, die längste anfrage, die ich geschafft hab war 0.3*** secs lang und beinhaltete ca. 20 DB anfragen...

Da is es schwierig es zu schaffen, dass sich requests über schneiden!

ich würd sagen pro script ein Connect, mehrere Queries, aber das sollte ja klar sein!

Felix Kaiser
29.03.2002, 14:34
Hmm, ich hab ka was für Werte ´Normalwerte´ sind. Ich schaff 55 Queries in 20 bis 30 ms. Da stecken schon Kapazitäten drin.

Und im Skript is ja auch normal, Verbindung herstellen, die ganzen Queries abhandeln und zum Schluss halt am Skriptende Verbindung schließen, kein Thema.

Aber imho ist die Anzahl Prozesse irrelevant für Stabilität einer Sache.

Apraxas
29.03.2002, 15:52
Wie kommst du auf "´Normalwerte´ ????

Aber imho ist die Anzahl Prozesse irrelevant für Stabilität einer Sache.

klar, hängt nich direkt zusammen, aber dz alles auf einen Tread legst und der dir abschmiert, schmieren dir halt alle connects mit ab :D

Felix Kaiser
29.03.2002, 16:20
Loggisch, aber ein Thread stürzt nicht einfach so ab, würd ich höchstens älteren Microsoft SQL Server zutrauen :D

Hab hier des neuste MySQL drauf, denen kann man schon trauen. OpenSource Bewährtheit wie bei Apache, Linux & Co. :)

Apraxas
29.03.2002, 18:11
Da kann man nur Zustimmen =)

Version 3 oder 4?

bei mir läuft die 4er, ohne irrgentwelche probs - is doch was schönes, wenn ne alpha auch stabil käuft :D

Felix Kaiser
29.03.2002, 18:17
Apache 1.3.22
PHP 4.1.1
MySQL 3.23.47

Läuft im Moment hier. Ich wollte mir aber morgen mal Zeit nehmen und aktualisieren, zumindest Apache auf 1.3.24 und PHP auf min 4.1.2.

Alles schön im Windows .NET Enterprise Server eingebettet :D

Apraxas
29.03.2002, 19:56
Apache 1.3.24
PHP 4.12
MySQL 4.0.1 A

und das passt wunderbar =)

Naja, ein Update von Apache und PHP is ja auch kein Prob (Apache Stop, Apache installieren, Apache starten) :D

Apraxas
29.03.2002, 19:59
hmm, langsam wirds OT... :rolleyes:

Felix Kaiser
29.03.2002, 20:01
Na, ich mag keine Beta Versionen, reicht wenns OS eine is ...

Hmm, OT, k, Silencer? Was jetzt mit deinem Prob? Alles klar? bzw. welche Versionen verwendest du?

Apraxas
29.03.2002, 20:18
*hehe* dann müsst ich bei mir auch den Mozilla wieder löschen =)

Jo -silencer-, alle Klarheiten beseitigt?

pate33
29.03.2002, 20:33
jo, alles klar. werds am montag mal austesten, thanks