Best practice to keep connection to mysql/mariadb from Python webapp

时间:2015-07-31 19:26:44

标签: python mysql web-applications mariadb

I init mariadb connection while webapp initialization like this:

con = MySQLdb.connect('localhost', 'user', 'pass', 'db')

Now I've found it doesn't work since there is a timeout to this connection. What is the best practice to set/keep connection to db? Increase timeout, create connection in each request or something more tuned?

1 个答案:

答案 0 :(得分:0)

建议您构建一个返回数据库连接的单例对象(您的con)。第一次调用它时,它执行MySQLDB.connect()。然后它保留连接的静态副本,以便在后续调用时返回给调用者。

为了从断开连接中恢复...首先,请注意超时不是丢失连接的唯一原因;网络故障可能导致它。所以忘记超时,只需计划在需要时重新连接。

一种方法是ping查看它是否仍然打开,如果不是,则重新连接。

另一种方法是自动连接"打开。但是这会对交易,@变量和其他可能会让你感到厌恶的事情产生负面影响。