什么是 MySQL?

世界上应用最广泛且灵活的开源关系数据库

MySQL 是应用最广泛的开源关系数据库,是许多常见网站、应用程序和商业产品使用的主要关系数据存储。MySQL 有 20 多年的社区开发和支持历史,是一种可靠、稳定而安全的基于 SQL 的数据库管理系统。MySQL 数据库适用于各种使用案例,包括任务关键型应用程序、动态网站以及用于软件、硬件和设备的嵌入式数据库。

AWS 通过多种方式支持 MySQL,其中包括 Amazon Relational Database Service (RDS) for MySQL 这种完全托管的数据库服务。我们还利用 MySQL 实现了 Amazon Aurora 与 MySQL 的兼容,并且 Amazon RDS 支持热门 MySQL 分支项目 MariaDB。您也可以在 Amazon EC2 上托管 MySQL 并自行管理数据库,或者在 AWS Marketplace 中查找第三方 MySQL 产品。 

MySQL 的历史

MySQL Server 的第一版由瑞典公司 MySQL AB 在 1995 年发布,该公司的创始人为 David Axmark、Allan Larsson 和 Michael Widenius。MySQL 的名字来自 Widenius 的女儿 My。MySQL 项目在 2000 年作为开源发布,采用 GNU 通用公共许可 (GPL)。到 2001 年,MySQL 已经达到了超过 200 万次有效安装;到 2004 年,该软件每天下载超过 3 万次。MySQL 于 2008 年被 Sun Microsystems 收购。当 Oracle 于 2009 年收购 Sun Microsystems 时,它也获得了 MySQL 的所有权。如今,MySQL 是使用最广泛的开源关系数据库系统。

使用 MySQL 的优势

易于使用,性能强大

MySQL 数据库易于使用,功能强大,支持触发器、存储的程序和可以更新的视图,受到了 Web 开发人员的青睐。MySQL 包含多种实用工具,例如备份程序 mysqldump、管理客户端 mysqladmin 和用于管理工作和迁移工作的 GUI MySQL Workbench。

随着时间的推移,MySQL 推出了包含索引压缩的 B-tree 磁盘表、基于线程的内存分配和优化的嵌套循环连接等功能,提升了其性能。存储引擎中的行级锁定和一致性读取为 MySQL 提供了支持多用户并发的额外性能优势。 

可靠性与安全性

MySQL 的 InnoDB 事务性存储引擎符合 ACID 模型,具有改进数据保护的功能,例如时间点恢复和自动提交。InnoDB 支持外键约束,可以避免不同表中的数据不一致,从而实现更高的数据完整性。

MySQL 附带强化而灵活的安全功能,其中包括基于主机的验证和密码流量加密。InnoDB 采用双层加密密钥架构进行静态数据表空间加密,具备额外的安全优势。

开源许可

MySQL 采用开源许可(GNU 通用公共许可),您可以自由使用和修改源代码。Amazon RDS for MySQL 等托管版本的 MySQL 没有额外的许可费用。

MySQL 在全球有大规模的贡献者和爱好者社区,为使用这种数据库系统带来了许多额外的长期优势。例如,MySQL 社区一直关注安全问题和错误修复,提高了软件的整体弹性。MySQL 的用户群、活动、论坛和邮寄名单组成了一个内建的教育和支持网络。

通用型 OLTP 数据库

MySQL 适用于需要事务性 SQL 引擎的任何应用场景,其中包括任务关键型应用程序和大流量网站。MySQL 遵守 ACID 原则,附带对 ANSI/ISO 标准 SQL 的扩展以及对 XML 和 JSON 的支持。MySQL 还支持高可用性数据库集群,可以处理 TB 级数据库。使用 MySQL 数据库的常见应用程序包括 TYPO3、MODx、Joomla、WordPress、phpBB、MyBB 和 Drupal 等。 

电子商务应用

MySQL 是电子商务平台最常用的事务引擎之一。MySQL 特别适合管理客户数据、交易和产品目录。在电子商务解决方案中,MySQL 经常与其他非关系数据库结合使用,例如用于同步订单数据的文档和键值存储以及存储非产品数据。 

LAMP 开源堆栈

MySQL 是 LAMP 开源软件栈(LAMP 代表 Linux、Apache、MySQL 和 PHP/Python/Perl)上运行的无数应用程序不可分割的组成部分。LAMP 是一种无处不在的 Web 服务解决方案堆栈,被广泛认为是动态网站和高性能 Web 应用程序的首选平台。 

MySQL 分支项目

MariaDB

MariaDB 是 MySQL 的一个流行分支,来自由 MySQL 的原始开发人员创建的 MariaDB,其目的是在 GNU GPL 下保持免费和开源。虽然 MariaDB 与 MySQL 分开维护,但其仍保持高度的 MySQL 兼容性,包括库二进制等同性以及与 API 的精确匹配。AWS 通过 Amazon RDS for MariaDB 这种完全托管的数据库服务来支持 MariaDB。

Percona Server

Percona Server 是 MySQL 的另一个流行分支,来自 Percona。Percona Server 中附带 XtraDB,这是 Percona 的 InnoDB 存储引擎分支。

语言支持

MySQL 支持大多数领先的编程语言和协议,包括:

Python

Java

Perl

Node.js

.Net

PHP

Ruby

Erlang

C/C++

Tcl

ODBC

Objective-C

MySQL 与PostgreSQL

MySQL 和 PostgreSQL 都是流行的开源关系数据库。从传统意义上说,我们认为 MySQL 比较易用且速度快,而 PostgreSQL 的功能比较丰富,并且与 Oracle 等商业数据库的兼容性更好。然而,目前 MySQL 和 PostgreSQL 的主要版本在性能、可靠性、安全性等方面均提供大量强大的功能和良好的特性。您可以详细了解 PostgreSQL,并通过 AWS 免费套餐试用 Amazon RDS for PostgreSQL

AWS 上的 MySQL 托管选项

Amazon EC2 上的自托管 MySQL

过去,关系数据库一直部署在本地,而随着数据库工作负载迁移到云端,组织开始利用 Amazon EC2 来运行其关系数据库。借助这种方法,您需要管理本地数据库附带的所有常规管理任务,例如硬件预置、数据库设置、优化、修补、备份和扩展。

Amazon RDS 上的完全托管 MySQL

Amazon 提供 Amazon RDS for MySQL 这项完全托管的关系数据库服务,您可以通过 AWS 免费套餐免费试用。Amazon RDS 让用户能够在云中轻松设置、操作和扩展 MySQL 部署。借助 Amazon RDS,您可以在几分钟内完成 Internet 级 MySQL 部署,不仅经济实惠,而且可以调整硬件容量大小。
Amazon RDS for MySQL 的入门很简单:
Step 1 - Sign up for an Amazon Web Services account

注册 Amazon RDS

通过简单教程进行学习

开始使用 Amazon RDS 构建

Amazon RDS 上的 MySQL 用户指南的帮助下开始构建。