Python 为什么MySQLdb会获得重复的db连接
我使用MySQLdb作为pythonmysql连接。我的测试代码如下:Python 为什么MySQLdb会获得重复的db连接,python,mysql,mysql-python,Python,Mysql,Mysql Python,我使用MySQLdb作为pythonmysql连接。我的测试代码如下: 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 l
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**
我得到的结果如下:
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时,这是一个问题。i、 e,当一个进程完成作业时,它将关闭连接,而其他进程仍在使用相同的db连接,我应该如何解决此问题 内存位置的重复使用不是问题。在测试程序中,关闭连接并释放对象。这意味着内存被释放,并可重复使用。然后创建一个新的连接对象,并再次使用内存位置
地址是交替的,因为对象1在创建对象2之后才被释放,对象2在创建对象3之前才被释放,依此类推。我删除了db.close(),仍然得到相同的连接对象。我使用多个进程来查询mysql,每个进程我创建了一个新连接,但它们都有重复的连接。当相同的连接被先前的进程关闭时,它会导致异常。我很困惑,MySQLdb中有默认的连接池吗?如果是这样,我真的不想用它。db.close不是有趣的部分。释放对象时,连接可能会隐式关闭。