一.前言
在使用 FastAPI 和 MySQL 数据库时,异步连接可以显著提高应用程序的性能和响应速度。为了实现这一点,可以使用 aiomysql 或 asyncmy 库来处理异步数据库操作。
二.安装使用
1. 安装依赖
pip install fastapi uvicorn aiomysql sqlalchemy[asyncio]
2.代码示例【demo】
from fastapi import FastAPI, Depends, HTTPException
from sqlalchemy.dialects.mysql import BIGINT, INTEGER, TINYINT
from sqlalchemy.ext.asyncio import AsyncSession, create_async_engine
from sqlalchemy.orm import sessionmaker
from sqlalchemy.ext.declarative import declarative_base
from sqlalchemy import select, text, Column, String, Text, DateTime, func
from pydantic import BaseModel
from datetime import datetime
from configure.configure import config
app = FastAPI()
# 创建异步数据库引擎
DATABASE_URL = f"mysql+aiomysql://root:root@{
config['mysql']['host']}:{
config['mysql']['port']}/{
config['mysql']['database']}"
engine = create_async_engine(
DATABASE_URL,
pool_size=50, # 连接池大小
max_overflow=100, # 超出 pool_size 的最大连接数
pool_recycle=3600, # 自动回收空闲连接的时间(秒),设置为 0 则禁用该功能
pool_timeout=10,
echo=False
)
# 创建异步会话工厂
SessionLocal =</