为什么 MySQLdb 得到重复的数据库连接
Why MySQLdb gets the duplicated db connections
我正在使用 MySQLdb 作为我的 python-mysql 连接。我的测试代码如下:
for i in range(6):
db = MySQLdb.connect('localhost','user','passwd','test'))
print db
我得到的结果如下:
_mysql.connection open to localhost at 1bba010
_mysql.connection open to localhost at 1c1ba90
_mysql.connection open to localhost at **1c34fa0**
_mysql.connection open to localhost at **1c3cdb0**
_mysql.connection open to localhost at **1c34fa0**
_mysql.connection open to localhost at **1c3cdb0**
您会发现最后两个连接对象是重复的。当我使用多进程查询 mysql 时,这是一个问题。即,当一个进程完成工作时,它将关闭连接,而其他进程仍在使用相同的数据库连接,请问我应该如何解决这个问题。
内存位置的重复使用不是问题。在您的测试程序中,您正在关闭连接并释放对象。这意味着内存已释放,可供重新使用。然后你创建一个新的连接对象,内存位置又被使用了。
地址交替是因为对象 1 在创建对象 2 之后才被释放,对象 2 在对象 3 创建之后才被释放,依此类推。
我正在使用 MySQLdb 作为我的 python-mysql 连接。我的测试代码如下:
for i in range(6):
db = MySQLdb.connect('localhost','user','passwd','test'))
print db
我得到的结果如下:
_mysql.connection open to localhost at 1bba010
_mysql.connection open to localhost at 1c1ba90
_mysql.connection open to localhost at **1c34fa0**
_mysql.connection open to localhost at **1c3cdb0**
_mysql.connection open to localhost at **1c34fa0**
_mysql.connection open to localhost at **1c3cdb0**
您会发现最后两个连接对象是重复的。当我使用多进程查询 mysql 时,这是一个问题。即,当一个进程完成工作时,它将关闭连接,而其他进程仍在使用相同的数据库连接,请问我应该如何解决这个问题。
内存位置的重复使用不是问题。在您的测试程序中,您正在关闭连接并释放对象。这意味着内存已释放,可供重新使用。然后你创建一个新的连接对象,内存位置又被使用了。
地址交替是因为对象 1 在创建对象 2 之后才被释放,对象 2 在对象 3 创建之后才被释放,依此类推。