我正在构建一个需要高速连接的python3应用程序。作为一个纯python库,PyMySQL在连接和执行查询中会比基于C的MySQLdb慢得多吗?
未来的python版本是否支持PyMySQL?
如果没有,有人可以建议一个可靠的替代方案吗?
答案 0 :(得分:4)
PyMySQL在纯Python中实现,而MySQLdb是C扩展。 PyMySQL在某些系统中易于安装(有时是唯一的方法),而MySQLdb有时会出现问题。
但两者都只是MySQL python连接器。
为什么选择PyMySQL? MySQL是一个非常受欢迎的RDBMS,你通常需要它 在Python中编写Web应用程序时与它交谈。事实 标准,MySQLdb,是一个声誉为的C扩展模块 很难编译,特别是如果你在Mac上(就像我一样)。 此外,最终用户需要等待编译新的二进制文件 对于每个新版本的Python,MySQLdb永远不会在Jython上运行, IronPython,或PyPy(没有像cpyext或IronClad那样的东西)。我们 同时保持Python 2和Python 3之间的100%兼容性 在2.x主干上的进步将立即可用 Python 3。
我们正在开发一个替代MySQLdb的替代品,而且#34;正常工作" 没有编译和安装C扩展和麻烦的麻烦 不用担心你会使用什么平台。
答案 1 :(得分:2)
许多项目使用PyMySQL,因为它支持Python 3(3.3及更高版本)以及Python 2.在撰写本文时,它在Github上有超过650个分支和60多个贡献者。每隔几个月左右就会有定期的更新和补丁,并且它在Python社区中很受欢迎,因为它相对容易安装和支持Python 3。 所有这一切都说,是的,我会说它得到了很好的支持。
现在速度:因为它是用纯Python编写而MySQLdb是C,你可以期待PyMySQL更慢。为了进行深入分析,我建议您查看本文底部的openstack链接。根据他们的测试, PyMySQL比MySQLdb慢大约10倍。但是,对于DB调用,无论如何都是IO绑定,因此PyMySQL支持gevent或类似异步IO的优势可能会根据您的应用程序来弥补速度。
来源: