Wie mit MySQL-Verbindungen umgehen?

Sockets, TCP/IP, (XML-)RPC und ähnliche Themen gehören in dieses Forum
Jan.O
User
Beiträge: 61
Registriert: Samstag 26. April 2008, 00:32

Wie mit MySQL-Verbindungen umgehen?

Beitragvon Jan.O » Samstag 8. November 2008, 22:43

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
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Wie mit MySQL-Verbindungen umgehen?

Beitragvon gerold » Samstag 8. November 2008, 23:04

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs
Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Jan.O
User
Beiträge: 61
Registriert: Samstag 26. April 2008, 00:32

Re: Wie mit MySQL-Verbindungen umgehen?

Beitragvon Jan.O » Samstag 8. November 2008, 23:21

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...
Benutzeravatar
gerold
Python-Forum Veteran
Beiträge: 5554
Registriert: Samstag 28. Februar 2004, 22:04
Wohnort: Telfs (Tirol)
Kontaktdaten:

Re: Wie mit MySQL-Verbindungen umgehen?

Beitragvon gerold » Samstag 8. November 2008, 23:33

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
:-)
http://halvar.at | Kleiner Bascom AVR Kurs

Wissen hat eine wunderbare Eigenschaft: Es verdoppelt sich, wenn man es teilt.
Jan.O
User
Beiträge: 61
Registriert: Samstag 26. April 2008, 00:32

Beitragvon Jan.O » Samstag 8. November 2008, 23:40

Ist ja interessant; was dazu gelernt.
Jan.O
User
Beiträge: 61
Registriert: Samstag 26. April 2008, 00:32

Beitragvon Jan.O » Sonntag 9. November 2008, 00:22

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

Wer ist online?

Mitglieder in diesem Forum: 0 Mitglieder