title: MySQL category: page slug: mysql sortorder: 0506 toc: False sidebartitle: MySQL meta: MySQL 是一款开源的数据库系统,它通常被 Python 开发人员用于存取数据。 authors: haiiiiiyun.github.io writing-time: 2016-07-24 09:53—11:55

MySQL

MySQL 是 关系型数据库 的一种开源实现,它用于存取数据。

MySQL logo.

MySQL 还是 PostgreSQL?

MySQL 是一款可运用于 Python Web 应用的开源数据库实现。MySQL 相比 PostgreSQL 更易入门。但是,Python Web 开发人员通常更偏爱 PostgreSQL 的设计,特别在随着应用程序的演进需要进行数据迁移的时候。

MySQL 是对 关系型数据库 概念的一种实现。 在 数据 那一章学习更多相关知识,或者到 总目录页 了解所有主题。

MySQL 的 Python 驱动器

在 Python 应用中访问 MySQL 需要一个数据库驱动器(也叫作 “连接器”)。当然驱动器可以作为应用的一部分进行编写,但是实践中多数开发人员会采用一个现成的开源驱动器。

随着 Python 3 的引入,MySQL 驱动器出现了一个大问题。 MySQLdb 是最流行的库之一,但是它现在无法与 Python 3 兼容,并且还没有更新计划。于是出现了 MySQLdb 的一个分支,叫 mysqlclient,它增加了对 Python 3 的兼容性。

mysqlclient 分支很不错,因此当前的 MySQLdb 用户在升级到 Python 3 后,在现有项目中只需用 mysqlclient 代替即可。但是,当查找该用哪个 Python 驱动器连接 MySQL 时,该分支经常会造成些许困惑。PostgreSQL 社区对 Python 驱动提供了更好的支持,因此很多开发者决定选用 PostgreSQL

抛开驱动器的支持问题,当然完全可以在 Python 3 Web 应用中选用 MySQL 作为后端。这里是一份驱动器列表,并附有对 Python 2、3 或两者的支持度的说明。

  • mysqlclient 是一个 MySQLdb 分支,它支持 Python 2 和 3。

  • MySQL 连接器 是 Oracle 的 “官方” (Oracle 当前拥有 MySQL)Python连接器。该驱动器支持 Python 2 和 3,但是确保到 版本指南 上了解哪个发行版与哪个 Python 版本兼容。

  • MySQLdb 支持 Python 2,在大家还没有开始迁移到 Python 3 之前,经常运用于 Python Web 应用程序中。

  • PyMySQL 用纯 Python (没有 C 低层代码)实现,意在成为 MySQLdb 的直接替代品。但是,该驱动器还不支持一些 MySQL API,因此你的应用是否能用该连接器将取决于你使用了哪些接口。

哪些组织使用 MySQL?

该数据库已实际部署在了一些高流量的网站上,如 TwitterFacebook许多其它大型机构。但是,因开发 MySQL 的公司 MySQL AB,已经被 Sun Microsystems (它后来又被 Oracle 收购)收购,像 WikipediaGoogle 等都开始不用该数据库了。MySQL 仍然是一个可行的数据库选项,但是我一直推荐还没有学过 MySQL 的 Python 开发人员学习 PostgreSQL。

针对 Python 的 MySQL 相关资源

通用 MySQL 相关资源