在转载|pymysql.err.InternalError: Packet sequence number wrong - got 45 expected 0这一篇中,我使用了方法一。接下来试试方法三,方法三和方法二其实意义差不多,但是对于数据库的连接并不是交由程序员管理而是交由连接池管理了,这里的对于connect的close并非真正的关闭连接,而是将连接重新放入连接池中。
首先,我是用的数据库模块是:pymysql,没装的pip install pymysql。
连接池我们使用DBUtils,使用前 pip install DBUtils
用连接池后的连接方法如下:
import pymysqlfrom dbutils.pooled_db import PooledDBpool = PooledDB(pymysql,0,host='localhost',user='root',passwd='123456',db='new_room_history',port=3306) #0为连接池里的最少连接数conn = pool.connection() #以后每次需要数据库连接就是用connection()函数获取连接就好了cur=conn.cursor()SQL="select * from table1"r=cur.execute(SQL)r=cur.fetchall()cur.close()conn.close()
测试下来,感觉和使用锁消耗的时间差不多。
参考
使用:/Xjng/p/3437694.html
安装:/weixin_44041700/article/details/110454901
对于连接池参数的讲解:/diuleilaomu/article/details/103278147