【问题标题】: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 编写不会改变您的网络速度。

标签: python mysql-python pymysql


【解决方案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

【讨论】:

【解决方案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 的优势可能会根据您的应用程序弥补速度。

来源:

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

【讨论】:

  • 在 CPython 上只慢 10 倍,在 PyPy 上快很多
猜你喜欢
  • 2011-11-20
  • 1970-01-01
  • 2013-07-19
  • 2016-12-04
  • 2011-11-05
  • 1970-01-01
  • 2010-09-17
  • 2014-06-04
  • 1970-01-01
相关资源
最近更新 更多