创建异步引擎
语法
async_engine = create_async_engine(
db_url,
echo=True,
pool_size=5,
max_overflow=10,
)
解释
- db_url:数据库链接,不同的数据库,链接也不同
- echo:
bool类型,设置True:打印所有 SQL;生产环境务必关闭,会有性能损耗,泄露 SQL 参数。
连接池参数:
- pool_size:常驻连接池保留的连接数量,默认值
5。程序空闲时,池中维持这么多条连接。并发不高保持5‑10;高并发接口可上调到10‑20;不要设置过大,MySQL 单连接占内存 - max_overflow:当 pool_size 的连接全部被占用,允许额外临时创建的最大连接数。默认值
10。
例:pool_size=5,max_overflow=10→ 最多同时15个数据库连接。
实现
from sqlalchemy.ext.asyncio import create_async_engine
# 数据库链接
DB_URL = "mysql+aiomysql://root:root@127.0.0.1:3306/fastapi_std?charset=utf8mb4"
async_engine = create_async_engine(
DB_URL,
echo=True, # True打印执行SQL,调试打开;生产关闭
pool_size=5, # 连接池大小
max_overflow=10, # 最大连接数量
)