PyMySQL 是不是得到很好的支持?它比 MySQLdb 慢吗?

Posted

技术标签:

【中文标题】PyMySQL 是不是得到很好的支持?它比 MySQLdb 慢吗?【英文标题】:is PyMySQL well supported? and is it slower than than MySQLdb?PyMySQL 是否得到很好的支持?它比 MySQLdb 慢吗? 【发布时间】:2015-05-31 20:18:57 【问题描述】:

我正在构建一个需要高速连接的 python3 应用程序。作为一个纯python库,Pymysql在连接和执行查询方面会比基于C的MySQLdb慢很多吗?

未来版本的 python 是否支持 PyMySQL?

如果没有,谁能推荐一个可靠的替代方案?

【问题讨论】:

如果 PyMySQL 明显比 MySQLdb 慢,我会感到惊讶 - 最大的时间成本将是 IO,并且用 C 编写不会改变您的网络速度。 【参考方案1】:

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 开发一个“正常工作”的替代品 无需编译和安装 C 扩展的麻烦和 不用担心你在哪个平台上。

来源https://code.google.com/p/pymysql/wiki/Goals

【讨论】:

您发布的链接自 2010 年以来未见开发。开发已移至 GitHub:github.com/PyMySQL/PyMySQL【参考方案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 的优势可能会根据您的应用程序弥补速度。

来源:

    https://github.com/PyMySQL/PyMySQL https://wiki.openstack.org/wiki/PyMySQL_evaluation

【讨论】:

在 CPython 上只慢 10 倍,在 PyPy 上快很多

以上是关于PyMySQL 是不是得到很好的支持?它比 MySQLdb 慢吗?的主要内容,如果未能解决你的问题,请参考以下文章

为啥线性支持向量机与 HoG 描述符配合得很好?

Python 3.5 连接Mysql数据库(pymysql 方式)

如何解决 pymysql.err.ProgrammingError: 1064 - 在 mysql 上保存数据?

PyMySQL 使用 localhost 与套接字不连贯的行为

空手道听众支持

谁能给我讲讲游戏脚本的事,用啥语言编写?是否需要你所玩游戏的代码?