在轉載|pymysql.err.InternalError: Packet sequence number wrong - got 45 expected 0這一篇中,我使用了方法一。接下來試試方法三,方法三和方法二其實意義差不多,但是對于數據庫的連接并不是交由程序員管理而是交由連接池管理了,這里的對于connect的close并非真正的關閉連接,而是將連接重新放入連接池中。
首先,我是用的數據庫模塊是:pymysql,沒裝的pip install pymysql。
連接池我們使用DBUtils,使用前 pip install DBUtils
用連接池后的連接方法如下:
import pymysql
from dbutils.pooled_db import PooledDB
pool = 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()
測試下來,感覺和使用鎖消耗的時間差不多。
參考
使用:https://www.cnblogs.com/Xjng/p/3437694.html
安裝:https://blog.csdn.net/weixin_44041700/article/details/110454901
對于連接池參數的講解:https://blog.csdn.net/diuleilaomu/article/details/103278147