在腳本內(nèi)設(shè)定DB連接池的寫法
import pymysql
from dbutils.pooled_db import PooledDB
PYMYSQL_POOL = PooledDB(
creator=pymysql, # 使用鏈接數(shù)據(jù)庫的模塊
maxconnections=None, # 連接池允許的最大連接數(shù),0和None表示不限制連接數(shù)
mincached=2, # 初始化時笼恰,鏈接池中至少創(chuàng)建的空閑的鏈接猫妙,0表示不創(chuàng)建
maxcached=5, # 鏈接池中最多閑置的鏈接九巡,0和None不限制
maxshared=3,
# 鏈接池中最多共享的鏈接數(shù)量,0和None表示全部共享驰弄。PS: 無用,因為pymysql和MySQLdb等模塊的 threadsafety都為1速客,所有值無論設(shè)置為多少戚篙,_maxcached永遠為0,所以永遠是所有鏈接都共享溺职。
blocking=True, # 連接池中如果沒有可用連接后岔擂,是否阻塞等待位喂。True,等待乱灵;False塑崖,不等待然后報錯
maxusage=None, # 一個鏈接最多被重復(fù)使用的次數(shù),None表示無限制
setsession=[], # 開始會話前執(zhí)行的命令列表阔蛉。如:["set datestyle to ...", "set time zone ..."]
ping=7,
# ping MySQL服務(wù)端弃舒,檢查是否服務(wù)可用。# 如:0 = None = never, 1 = default = whenever it is requested, 2 = when a cursor is created, 4 = when a query is executed, 7 = always
host=127.0.0.1,
port=3306,
user=<user>,
password=<password>,
database=<database>, # 鏈接的數(shù)據(jù)庫的名字
charset="utf8",
)
POOL = PYMYSQL_POOL
conn = POOL.connection()
cursor = conn.cursor()
如上状原,可調(diào)用游標(biāo)cursor去執(zhí)行sql語句聋呢,每個請求結(jié)束時可close掉連接conn(并非真正的關(guān)閉連接,下次還可以使用)
如果是寫入flask框架颠区,則將此設(shè)定信息加入config.py即可削锰,這里不作贅述。
蟹蟹