aoimysql配合mysql使用时的query缓存坑
目录
背景⌗
- 近期开发sanic框架下的系统使用到了aiomysql三方库,异步执行sql提高系统工作效率
- 在手动向数据库插入数据后,使用aiomysql进行select时并不能查询到刚刚插入的数据,只能重启web服务
问题定位⌗
- 最终定位问题为数据库操作仅针对非select进行了commit,造成select一直使用的是缓存
解决⌗
- 一种方式是在所有的query语句之后都对上一次查询进行commit
async with self.pool_db.acquire() as conn:
# some query
await conn.commit()
- 另一种方式是在执行sql之前将连接设置自动提交模式
async with self.pool_db.acquire() as conn:
await conn.autocommit(True)
引用⌗
- (StackOverflow)[https://stackoverflow.com/questions/21974169/how-to-disable-query-cache-with-mysql-connector]
Read other posts