Seite 1 von 1

Wie mit MySQL-Verbindungen umgehen?

Verfasst: Samstag 8. November 2008, 22:43
von Jan.O
Hallo,

Ich benutze CherryPy als ApplicationServer. Nun stellte sich mir folgende Frage: Wie sollte man am besten mit MySQL-Verbindungen umgehen, wenn die Website viele Zugriffe hat. Wann sollen verbindungen geöffnet werden?

Erstmal grundlegende Vorschläge:

a) Bei jedem request ne neue Verbindung aufmachen (uncool)
b) Eine Queue mit n Verbindungen machen und reusen

Ist MySQLdb threadsafe? Kann ich mir einfach immer eine connection aus der Queue nehmen und dann einen cursor erzeugen oder muss ich währendessen die Verbindung schützen (lock)?


Jan

Re: Wie mit MySQL-Verbindungen umgehen?

Verfasst: Samstag 8. November 2008, 23:04
von gerold
Jan.O hat geschrieben:CherryPy als ApplicationServer [...] mit MySQL
Hallo Jan!

Lesestoff:
- http://tools.cherrypy.org/wiki/Databases
- http://www.python-forum.de/topic-11150.html
- http://www.python-forum.de/topic-11839.html

Noch Fragen?

mfg
Gerold
:-)

Re: Wie mit MySQL-Verbindungen umgehen?

Verfasst: Samstag 8. November 2008, 23:21
von Jan.O
gerold hat geschrieben: Noch Fragen?

mfg
Gerold
:-)
ui, danke. Habe verstanden, wie ich es machen muss, danke. CherryPy hat ja echt ungeahnte möglichkeiten ^^.

Komisch, dass cherrypy.thread_data für jeden Thread einen verschiednen Inhalt hat. Verstehe nicht, wie das funktionieren kann...

Re: Wie mit MySQL-Verbindungen umgehen?

Verfasst: Samstag 8. November 2008, 23:33
von gerold
Jan.O hat geschrieben:Komisch, dass cherrypy.thread_data für jeden Thread einen verschiednen Inhalt hat.
Hallo Jan!

Das hängt mit ``threading.local`` zusammen. Siehe: http://docs.python.org/library/threadin ... ding.local

mfg
Gerold
:-)

Verfasst: Samstag 8. November 2008, 23:40
von Jan.O
Ist ja interessant; was dazu gelernt.

Verfasst: Sonntag 9. November 2008, 00:22
von Jan.O
Kann ich auch einfach eine Klassenvariable vom typ threading.local() machen, und diese dann mit den entsprechenden attibuten versehen? Oder wäre das zu leicht ^^?

Edit: ja, geht