MySQL是 用于存储和检索数据的开源关系数据库实现。
MySQL还是PostgreSQL?
MySQL是适用于Python Web应用程序的可行的开源数据库实现。MySQL的初始学习曲线比PostgreSQL稍微容易一些 。但是,Python Web开发人员通常更喜欢PostgreSQL的设计,尤其是当数据迁移随着应用程序的发展而运行时。
MySQL是关系数据库概念的实现。在数据一章中了解更多信息,或查看所有主题的目录。
适用于MySQL的Python驱动程序
从Python应用程序访问MySQL需要数据库驱动程序(也称为“连接器”)。虽然可以将驱动程序编写为应用程序的一部分,但实际上大多数开发人员都使用现有的开源驱动程序。
自从引入Python 3以来,MySQL驱动程序就出现了一个主要问题。最流行的一种名为MySQLdb的库 在Python 3中无法以其现有形式运行,也没有计划对其进行更新。因此,名为mysqlclient的MySQLdb分支 增加了Python 3兼容性。
mysqlclient分支很好,因为现有的MySQLdb用户可以将mysqlclient放入升级到Python 3的现有项目中。但是,该分支通常在寻找要与MySQL一起使用的Python驱动程序时引起混乱。许多开发人员只是决定使用 PostgreSQL,因为PostgreSQL社区对Python驱动程序有更好的支持。
考虑到该驱动程序支持上下文,绝对有可能使用MySQL作为后端来构建Python 3 Web应用程序。以下是驱动程序列表以及它是否支持Python 2、3或两者都支持。
mysqlclient是MySQLdb的分支,支持Python 2和3。
MySQL Connector 是Oracle的“官方”(Oracle当前拥有MySQL)Python连接器。该驱动程序支持Python 2和3,只需确保检查 版本指南以了解哪些发行版适用于哪个Python版本。
MySQLdb支持Python 2,并且在开始大规模迁移到Python 3之前,Python Web应用程序经常使用它。
PyMySQL是一个纯Python(无C低级代码)实现,试图替代MySQLdb。但是,驱动程序不支持某些MySQL API,因此您的应用程序是否可以使用此连接器取决于您所构建的内容。
哪些组织使用MySQL?
该数据库已部署在生产量最大的一些站点上,例如 Uber, Twitter, Facebook 和许多其他主要组织。但是,由于 开发MySQL的公司MySQL AB被Sun Microsystems收购(而Oracle又由Oracle收购了),因此Wikipedia 和Google对数据库进行了重大修改 。MySQL仍然是可行的数据库选项,但是我始终建议新的Python开发人员如果不了解MySQL,则学习PostgreSQL。
特定于Python的MySQL资源
下列资源向您展示如何直接通过SQL查询或较少直接使用对象关系映射器(ORM)( 如SQLAlchemy或Django ORM )在Python代码中使用MySQL 。
Python MySQL教程 使用MySQL Connector Python库来演示如何在Python应用程序中运行查询和存储过程。
Python的3.4.0与MySQL数据库 和 Python 3中和MySQL 约与Python 3要使用哪个数据库MySQL驱动程序的常见问题提供上下文。
糟糕的选择:MySQL 是一篇博客文章,内容涉及MySQL的实现中的特定缺陷,这些缺陷阻碍了将其与Django的ORM配合使用。
MySQL Python教程使用MySQLdb驱动程序连接到MySQL服务器实例,并显示一些用于插入和查询数据的示例。
通用MySQL资源
有许多关于MySQL的编程语言不可知的教程。下面列出了其中一些最佳教程。
如何在Ubuntu 16.04上安装和使用MySQL 是用于在Ubuntu Linux上启动和运行的快速教程。
28初学者的MySQL数据库学习教程 是精选的MySQL入门主题集合。
《基本MySQL教程 》没有最原始的标题,但是它是您在MySQL中创建用户和使用表的前几个步骤的很好的演练。
mycli是MySQL的命令行界面,其中包括命令完成和其他超级方便的功能。
再见MySQL和MongoDB, 再加上Guten Tag PostgreSQL,详细介绍了为什么Userlike公司从其MySQL数据库设置迁移到PostgreSQL。
与MySQL一起成长是一个故事,讲述了一家公司是如何经历飞速增长并必须通过快速扩展其MySQL数据库来跟上它的。
监视MySQL指标 是这个由三部分组成的系列文章中的第一篇,其他部分涉及 收集指标 以及 使用DataDog工具专门监视和收集。该系列说明了您应该在生产数据库中收集和监视哪些指标,以及为什么这些指标很重要的目的。
gh-ost (源代码)是由GitHub构建并向开发社区开源的模式迁移工具。gh-ost的优点是主节点上具有可持续的工作负载,以使其能够继续为入站查询请求提供服务,并具有暂停迁移的能力。关于如何使用gh-ost对的文章以及GitHub上有关如何在GitHub上的MySQL基础结构测试自动化中执行备份,故障转移和架构迁移的详细文章中非常出色 。
在 非官方的MySQL优化指南 的目的是为有经验的开发谁需要得到更好的表现出来的MySQL为他们的具体使用情况。
Ultimate Postgres vs MySQL Blog Post 提供了MySQL和PostgreSQL之间的数据类型,默认值,数组,联接和许多其他差异的比较。