全部主题 | Blog | 时讯 | @fullstackpython | Facebook | 源码
MySQL
MySQL 是 关系型数据库 的一种开源实现,它用于存取数据。
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?
该数据库已实际部署在了一些高流量的网站上,如 Twitter、 Facebook 和 许多其它大型机构。但是,因开发 MySQL 的公司 MySQL AB,已经被 Sun Microsystems (它后来又被 Oracle 收购)收购,像 Wikipedia 和 Google 等都开始不用该数据库了。MySQL 仍然是一个可行的数据库选项,但是我一直推荐还没有学过 MySQL 的 Python 开发人员学习 PostgreSQL。
针对 Python 的 MySQL 相关资源
Python 3.4.0 和 MySQL 数据库 及 Python 3 和 MySQL 就 Python 3 该使用哪个 MySQL 驱动器这个经常被问到的问题提供了相关的背景知识。
糟糕的选择: MySQL 这篇博文讲述了 MySQL 实现中的一些特定缺陷阻碍了其在 Django ORM 中的使用。
使用 Python 来图示化 MySQL 数据库中的数据 是个很有趣的研究,它用代码来演示了如何从 MySQL 中提取数据并用 Plotly 对其图示化。
MySQL Python 教程 使用 MySQLdb 驱动器来连接一个 MySQL 服务器实例,并展示了一些插入和查询数据的示例。
通用 MySQL 相关资源
如何在 Ubuntu 16.04 上安装使用 MySQL 是一篇关于如果在 Ubuntu Linux 上安装和运行 MySQL 的快速指南。
学习 MySQL 数据库的 28 份初学者教程 整理了各种介绍 MySQL 主题的相关资料。
这篇教程展示了如何在 Ubuntu 上安装 MySQL。
MySQL 基础教程,虽然标题不是很新颖,但它很好的演示了使用 MySQL 的开始几个步骤,如创建用户和处理数据表等。
Pinterest 将他们的很多 MySQL 工具开源了,这些工具可以用于管理数据库实例。
再见 MySQL & MongoDB, 你好 PostgreSQL 详细阐述了为何 Userlike 这个公司将它们的 MySQL 数据库迁移到 PostgreSQL。
MySQL 处理数据增长 讲述了一个公司如何扩展它们的 MySQL 数据库来应对自身的快速增长的故事。
跟踪: 规模化插入 MySQL 数据 - (第 1 部分) 是系列文章中的第一篇,它讲述了 Pinterest 的工具如何从 Kafka 和 Reids 等其它内部资源中加载大量数据到 MySQL 中。
监测 MySQL 度量信息 是三部曲系列文章的第一篇,其它两篇分别是 收集度量信息 和 利用 DataDog 工具进行监测和收集。该系列文章阐述了你应该从生产环境下的数据库中收集哪些度量信息以及这些度量信息缘何重要。
学习有关数据的更多知识,还是学习 Web 框架知识?
那些时髦的开发者一直谈论的 NoSQL 数据存储到底是什么?
想找到一个完整的,一步一步的部署方案吗?请看《The Full Stack Python Guide to Deployments》.
邮件获取更新
目录
1. 简介学习编程为什么用 Python?Python 2 还是 3?企业 PythonPython CommunityBest Python Podcasts最佳 Python 资源最佳 Python 视频2. 开发环境VimEmacs3. 核心语言生成器推导式4. Web 开发Web 框架DjangoFlaskBottlePyramidMorepath其它 Web 框架Web 设计级联样式表 (CSS)JavaScriptWebSockets模板引擎Web 应用安全静态网站生成器Jinja25. 数据关系型数据库NoSQL 数据存储对象关系映射器PostgreSQLMySQLSQLite6. Web APIsAPI 集成API 的创建Twilio7. 部署服务器平台即服务(PaaS)操作系统Web 服务器WSGI 服务器源码控制应用程序依赖静态内容任务队列配置管理持续集成日志监控Web 分析Docker缓存微服务DevOpsNginxApache HTTP 服务器CaddyGreen Unicorn (Gunicorn)UbuntuPelicanLektorMkDocs8. 测试单元测试集成测试代码度量调试9. MetaBotsChange LogFuture DirectionsAbout the AuthorSQLAlchemyPeewee …或者显示全部目录内容.
MySQL
重要的更新内容会通过 Twitter 账号@fullstackpython发布。
需要更加详细的教程吗?请看 《The Full Stack Python Guide to Deployments》。
Chapters
1. 简介2. 开发环境3. 核心语言4. Web 开发5. 数据 » MySQL 6. Web APIs7. 部署8. 测试9. Meta …or view the full table of contents.
This site is based on Matt Makai's project Full Stack Python, thanks for his excellent work!
此网站由 @haiiiiiyun 和 开源爱好者们 共同维护。 若发现错误或想贡献,请访问: Github fullstackpython.cn 项目