asyncmy 是一个 asyncio 下的异步 MySQL 驱动,在同步 IO 下,已经有 mysqlclient 这样的用 C 写的驱动,也有 pymysql 这样的纯 Python 实现,而在异步 IO 下,似乎只有 aiomysql 这一个选择。而 aiomysql 的性能,以及 pymysql,都不是那么令人满意,而 mysqlclient 因为核心代码是用 C 写的,所以比较快。
于是在这样的情况下,有了 asyncmy 。
asyncmy 的代码参考了 pymysql 以及 aiomysql,核心协议部分使用 cython 重写以提升性能,并且将底层同步 IO 重写为异步 IO,其 API 兼容 aiomysql 。
另外 asyncmy 也实现了 MySQL 复制协议,其协议核心代码来自 python-mysql-replication,并将网络 IO 部分重写为异步 IO 。
仓库中的基准测试对 mysqlclient,pymysql,aiomysql,asyncmy 进行了性能测试,结果表明 asyncmy 在不同情况下都拥有不错的性能。
后续项目计划是进一步提升性能,以及完善项目文档。
最后希望各位不吝 star,感谢!
1
so1n 2021-03-16 09:20:07 +08:00 via Android
async 难得看到 mysql 相关的库😭
|
2
jenlors OP 是的,确实很少
|
3
vegetableChick 2021-03-16 10:27:07 +08:00
牛啊牛啊
|
4
zyb201314 2021-03-17 20:21:30 +08:00 via Android
辛苦、支持! 加星收藏
|