跳转到内容

MySQL/简介

来自 维基教科书,自由的教科书,为自由的世界

什么是 SQL?

[编辑 | 编辑源代码]

有关更一般的介绍,请参阅 SQL 维基教科书.

Structured Query Language 是一种用于处理关系型数据库的第三代语言。作为一种 3G 语言,它比机器语言更接近人类语言,因此更容易理解和使用。

  • IBM 的 Dr. E. F. Ted Codd 在 1970 年描述了数据库的关系模型。
  • 1992 年,ANSI(美国国家标准协会)这个最高机构标准化了大多数基本语法。
  • 它被称为 SQL 92,大多数数据库(如 Oracle、MySQL、Sybase 等)都实现了标准的一个子集(以及专有的扩展,使其通常不兼容)。

为什么选择 MySQL?

[编辑 | 编辑源代码]
  • 自由软件 - 以 GPL 2.0 许可证发布(尽管可以从 Oracle 购买不同的许可证,见下文)
  • 成本 - 免费!
  • 支持 - 在线教程、论坛、邮件列表 (lists.mysql.com)、付费支持协议。
  • 速度 - 可用数据库中最快的数据库之一。([1]
  • 功能 - 支持大多数 ANSI SQL 命令。
  • 易用性 - 减少培训/再培训需求。
  • 可移植性 - 可以轻松地从 Excel 和其他数据库导入/导出数据
  • 可扩展性 - 适用于包含数十亿条记录和数千亿字节数据以及数十万个表格的小型数据库和大型数据库。
  • 权限控制 - 选择性地授予或撤销用户权限。

MySQL 许可证

[编辑 | 编辑源代码]

MySQL 采用双重许可模式

  1. 根据 GNU 通用公共许可证 2.0 版(在 2007 年之前发布的版本中允许“或更高版本”):这是一个自由(指自由的)、复制许可软件许可证,允许您在应用程序中将 MySQL 用于商业和非商业目的,只要您的应用程序是根据 GNU GPL 发布的。还有一个“FLOSS 异常”,它实际上允许非 GPL 但免费的应用程序(例如,在 PHP 许可证下的 PHP 编程语言)连接到 MySQL 服务器。该异常列出了一组可以与 GNU GPL 一起用于您的依赖于 MySQL 的免费应用程序的自由和开源软件许可证。
  2. 一个所谓的“商业”[1],付费许可证,即 MySQL 授予您将 MySQL 集成到您在自己的组织之外重新发布的非 FLOSS 应用程序的权利的许可证。[2]

MySQL 及其分支

[编辑 | 编辑源代码]

MySQL 是自由软件,因此社区贡献的一些分支和非官方版本存在。

2008 年,Sun Microsystems 收购了 MySQL,Sun 本身在 2010 年被 Oracle 收购。收购之后,开发流程发生了变化。该团队开始更不频繁地发布新版 MySQL,因此新代码的测试较少。社区贡献也减少了。

2009 年,MySQL 创始人 Monty Widenius 离开了公司,并创建了一家名为 The Monty Program 的新公司。他启动了一个名为 MariaDB 的新分支。MariaDB 的范围是

  • 导入所有将添加到主 MySQL 分支中的新代码,但对其进行增强以使其更稳定;
  • 清理 MySQL 代码;
  • 添加社区贡献(新插件、新功能);
  • 开发 Aria 存储引擎,以前称为 Maria;
  • 提高性能;
  • 在服务器中添加新功能。

许可证是 GNU GPLv2(从 MySQL 继承)。

MariaDB 的主要平台是 GNU/Linux,但也适用于一个专有系统。以下存储引擎已添加

  • Aria(也用于内部表)
  • PBXT
  • XtraDB
  • FederatedX
  • SphinxSE
  • OQGRAPH
  • 将来可能会添加其他引擎。

2008 年,MySQL 首席架构师 Brian Aker 离开了项目,启动了一个名为 Drizzle 的新分支。虽然 Oracle 最初资助了该项目,但 Drizzle 现在由 Rackspace 资助。它的特点是

  • 在这个分支中,只有很小一部分 MySQL 代码得以保留,其他代码都被删除:Drizzle 服务器只实现了基本功能;
  • 已保留的代码已被清理;
  • Drizzle 是模块化的:许多功能是或可以作为插件实现;
  • 该软件针对多 CPU 和多核 64 位机器进行了优化;
  • 仅支持 GNU/Linux 和 UNIX 系统。

目前还没有这个分支的公开版本。它的主要许可证将是 GNU GPLv2(从 MySQL 继承),但尽可能应用 BSD 许可证。

OurDelta 是另一个由 Open Query 维护的分支。第一个分支,版本号为 5.0,基于 MySQL 5.0。5.1 分支基于 MariaDB。OurDelta 包含社区或第三方开发的一些补丁。OurDelta 为一些 GNU/Linux 发行版提供软件包:Debian、Ubuntu、Red Hat/CentOS。它不适用于其他系统,但源代码是免费提供的。

Percona Server

[编辑 | 编辑源代码]

Percona Server 是由 Percona 维护的 MySQL 分支。它提供了 ExtraDB 存储引擎,它是 InnoDB 的分支,还提供了一些主要提高性能的补丁。

  1. 称其为“商业”具有误导性,因为 GNU GPL 可用于商业(但非专有)项目。
  2. 专有项目仍然可以使用旧版本的 MySQL 客户端连接库(在 GNU 宽通用公共许可证下)连接到 MySQL 服务器,而无需购买此许可证。但是,这些库无法连接到最新版本的 MySQL 服务器。
华夏公益教科书