hi,
ich bin gerade an einer homepage dran und realisiere sie mit mod_python. ich muss allerdings bei fast jeder seite mysql query benutzen. libs wie SQLAlchemy sehen sehr attraktiv aus, allerdings brauche ich eine performantere lösung, da die website sehr gut besucht wird, hat jemand einen tipp für mich?
mit freundlichen grüßen
- Warok
schnelle MySQL verbindung
Mittels einer Technik, die allgemein als Caching bezeichnet wird.
Ganz platt ausgedrückt meint es, dass Du bestimmte "Daten" in einem schneller zugreifbaren Speicher anstelle im Speicher in Form Deiner Datenbank hällst.
Quasi: merk Dir die wichtigen Daten in einem Bereich Deiner WebApp, anstelle sie jedesmal mit SQL Statements aus der Datenbank abzufragen.
Caching ist leider immer so speziell (und wie gesagt ist es mehr eine art "Technik", als eine Implementierung), dass Du für Deinen Fall entweder eine schon speziell dafür ausgelegte Lösung suchen, oder eine eigene entwerfen musst.
Gruß,
>>Masaru<<
Ganz platt ausgedrückt meint es, dass Du bestimmte "Daten" in einem schneller zugreifbaren Speicher anstelle im Speicher in Form Deiner Datenbank hällst.
Quasi: merk Dir die wichtigen Daten in einem Bereich Deiner WebApp, anstelle sie jedesmal mit SQL Statements aus der Datenbank abzufragen.
Caching ist leider immer so speziell (und wie gesagt ist es mehr eine art "Technik", als eine Implementierung), dass Du für Deinen Fall entweder eine schon speziell dafür ausgelegte Lösung suchen, oder eine eigene entwerfen musst.
Gruß,
>>Masaru<<
Du kannst die Datenbank-Zugriffe cachen (macht SQLObject, SA bestimmt auch), Stored Procedures verwenden, geparste Templates cachen, den fertigen XHTML-Output cachen oder die Inhalte mit Proxies wie Squid replizieren und vorhalten. Oder gleich nur eine statische Website hochladen.
Das geht natürlich nur, sofern deine Website eingeschränkt oder ganz auf dynamische Inhalte für jeden einzelnen Request verzichten kann.
Letztlich denke ich aber nicht, dass ein ORM wie SA der Flaschenhals wird. Da muss schon eine ganze Menge kommen.
Das geht natürlich nur, sofern deine Website eingeschränkt oder ganz auf dynamische Inhalte für jeden einzelnen Request verzichten kann.
Letztlich denke ich aber nicht, dass ein ORM wie SA der Flaschenhals wird. Da muss schon eine ganze Menge kommen.
hmm das mit dem caching konzept hört sich sehr gut an, wäre aber eine lösung per sockets möglich? son socket ist ja relativ fix aufgebaut?
was ich auch nicht ganz verstehe wo ich sie merken soll, script ist ja irgendwann beendet, wo soll ich das am besten merken lassen?
@Y0Gi: das ist mir zu kompliziert
was ich auch nicht ganz verstehe wo ich sie merken soll, script ist ja irgendwann beendet, wo soll ich das am besten merken lassen?
@Y0Gi: das ist mir zu kompliziert

Hast Du überhaupt ein Problem mit der Leistungsfähigkeit, oder glaubst Du es könnte vielleicht eines geben?
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Es gibt auch Frameworks die schon selbst Unterstützung für Caching anbieten.Y0Gi hat geschrieben:Du kannst die Datenbank-Zugriffe cachen (macht SQLObject, SA bestimmt auch), Stored Procedures verwenden, geparste Templates cachen, den fertigen XHTML-Output cachen oder die Inhalte mit Proxies wie Squid replizieren und vorhalten. Oder gleich nur eine statische Website hochladen.
Achja, zu Memcached gibt es inzwischen ein neues Interface-Modul, CMemcached, welches sogar noch schneller sein soll - also es gibt eine ganze Menge Spielraum zum Optimieren.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
jup, momentan wird php genutzt was aber... *kotz*BlackJack hat geschrieben:Hast Du überhaupt ein Problem mit der Leistungsfähigkeit, oder glaubst Du es könnte vielleicht eines geben?
nun wollen wirs mit python probieren, alleine da wir das selbst "scripten" können nach unseren bedürfnissen. das prob ist auf dem selben server läuft noch der dazugehörige Gameserver der mysql verwendet. deshalb wärs doof jedes mal für jeden hp besuche bei jedem script aufruf die ganzen module zu importen um ne mysql verbindung aufzubauen.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Das die PHP-Performance schlecht ist, muss nicht heißen, dass die Python-Performance schlecht ist. Es gibt durchaus Frameworks die wesentlich schneller sind als PHP - selbst ohne abgefahrenes Caching.Warok hat geschrieben:jup, momentan wird php genutzt was aber... *kotz*
Hast recht. Aber wenn man ein Framework verwendet muss die Verbindung ja gar nicht permanent bei jedem Request geöffnet und geschlossen werden. Der Server-Code läuft die ganze Zeit womit man sich die gesammte Initialisierung spart.Warok hat geschrieben:deshalb wärs doof jedes mal für jeden hp besuche bei jedem script aufruf die ganzen module zu importen um ne mysql verbindung aufzubauen.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice
Mit WSGI wird ein Teil des Codes der Anwendung nur einmalig ausgeführt. Ein entsprechender Server kümmert sich um den Rest.
-
- Python-Forum Veteran
- Beiträge: 16025
- Registriert: Freitag 20. Juni 2003, 16:30
- Kontaktdaten:
Ja, wie Y0Gi bereits schrieb ist das über WSGI möglich (solange man nicht WSGI über CGI nutzt, versteht sich). Ebenso ist das mit TurboGears gang und gäbe.Warok hat geschrieben:achso, wie kann man sowas selbst realisieren das der code weiterhin ausgführt wird also in meinem fall die mysql verbindung.
My god, it's full of CARs! | Leonidasvoice vs (former) Modvoice