MySQL是一种开源(免费)的 数据库、资料库管理系统,广泛应用在中小型的网站中,用来配合如PHP、ASP或ASP.NET等网页程式语言,储存大量数据,若网站拥有后端管理程式系统(网站后台),多须配合资料库功能。
MySQL 是世界上最受欢迎的开源关系型数据库之一,这得益于它在电子商务网站、社交媒体和应用程序中的广泛使用,包括 Drupal、Joomla、Magento 和 WordPress。它也是广泛使用的 Linux-Apache-MySQL-PHP/Perl/Python (LAMP) Web 应用技术栈的重要组成部分,LAMP 为许多热门应用、网站和服务提供支持。它被 DB-Engines 评为全球第二受欢迎的数据库。
简单来说,资料库是用来放置大量资料与档案的一个仓库,SQL是跟网站仓库沟通的管员,而MySQL是用来管理仓库的系统。如此,我们可以透过MySQL系统请SQL与仓库沟通,管理资料库中的资料。
MySQL中文官网: https://www.mysql.com/cn/
MySQL 是一个全球流行的开源数据库。DB-Engines 的数据显示,MySQL 在全球最受欢迎的数据库排名中高居第二位,仅次于 Oracle Database。目前,全球访问量最高的流行应用的背后都有 MySQL 的身影,例如 Facebook、Twitter、Netflix、Uber、Airbnb、Shopify 和 Booking.com。
作为一个开源数据库,MySQL 在超过 25 年的发展历程中与全球用户密切合作,推出了众多先进功能,您喜欢的一些应用或编程语言很可能就是由 MySQL Database 提供支持的。
“MySQL” 如何发音?
“MySQL” 的官方读法是 “My ess-cue-el”,但也有很多人将其读作 “My sequel”。
MySQL 海豚叫什么名字?
MySQL 的标志是一个海豚,名字叫做 “Sakila”。这个名字是从“海豚命名”竞赛中用户提议的一堆名字中选出来的,是来自非洲斯威士兰的开源软件开发人员 Ambrose Twebaze 提出的。
MySQL 是一个关系数据库管理系统
数据库是当前所有软件应用都离不开的基本数据存储库。例如,每当有人执行 Web 搜索、登录帐户或完成一项事务时,数据库系统就会存储相关信息以供未来访问。
其中,关系数据库将数据存储在许多单独的表中,而不是将所有数据存储在一个大仓库中。它通过针对速度进行了优化的物理文件组织数据库结构,通过逻辑数据模型以及数据表、视图、行以及列等对象提供灵活的编程环境。您可以设置规则来管理不同数据字段之间的关系,例如一对一、一对多、唯一、必需或可选,设置不同表之间的“指针”。关系数据库将强制实施这些规则,因此只要拥有一个设计良好的关系数据库,您的应用永远不会发生数据不一致、重复、孤立、过时或丢失等问题。
MySQL 中的 “SQL” 指的是“结构化查询语言”,它是访问数据库时最常用的标准化语言。根据您的编程环境,您可以直接输入 SQL 来执行操作(例如生成报告),可以将 SQL 语句嵌入基于其他语言编写的代码中,或使用隐藏了 SQL 语法的特定语言 API。
MySQL 的开源基因
开源意味着任何人都可以使用和修改。您可以通过互联网下载 MySQL 软件并免费使用,可以根据您的需求修改 MySQL 软件的源代码。MySQL 软件则使用 GNU 通用公共许可证 (GPL) 来定义您在各种情况下可进行或不可以进行哪些操作。
如果您不喜欢 GNU GPL 或者需要将 MySQL 代码嵌入商业应用,您可以向 Oracle 购买商业许可版本。有关更多信息,请参阅 MySQL 许可信息。
MySQL:开发人员的首选
Stack Overflow 和 JetBrains 的调查数据显示,MySQL 一直是最受开发人员欢迎的数据库,它以极高的性能、可靠性和易用性赢得了广大开发人员的喜爱。
MySQL 支持以下主流开发语言和驱动程序:
PHP Python Java/JDBC Node.js
Perl Ruby Go Rust
C C++ C#/.NET ODBC
MySQL 现已成为众多大获成功的开源应用的首选数据库,包括 WordPress、Drupal、Joomla 和 Magento。在非常流行的,用于开发 Web 应用的开源 LAMP(Linux、Apache、MySQL、Perl/Python/PHP)堆栈中,”M” 代表的便是“MySQL”。
MySQL 支持客户端/服务器端和嵌入系统两种模式
MySQL Database 是一个客户端/服务器系统,它由一个支持多种后端的多线程 SQL 服务器、多个客户端程序和库、管理工具以及广泛的应用编程接口 (API) 组成。同时,Oracle 还支持将 MySQL 作为一个嵌入式多线程库链接到您的应用,帮助您开发规模更小、速度更快、更易于管理的独立产品。
MySQL 的优势
MySQL 快速、可靠、可扩展、简单易用。它最初是为了快速处理大型数据库而开发的,多年来一直应用于严苛生产环境。
目前,MySQL 虽然还处在发展中,但已经提供了一组丰富、实用的功能。凭借出色的连接、速度和安全性表现,MySQL 非常适合访问互联网上的数据库。
MySQL 的主要优势包括
简单易用:开发人员可以在数分钟内完成 MySQL 安装,可以轻松管理数据库。
可靠性:MySQL 是最成熟和使用最广泛的数据库之一。自问世 25 年来,它经受住了各种场景考验,旗下用户不乏全球知名的大型企业。凭借出色的可靠性,很多企业都采用 MySQL 来运行关键业务应用。
可扩展性:MySQL 可以灵活扩展,满足访问量最高的应用的需求。得益于 MySQL 的原生复制架构,Facebook 等企业能够轻松扩展应用,满足数十亿用户需求。
性能:多项标准行业基准测试(包括 TPC-H、TPC-DS 和 CH-benCHmark)的数据显示,MySQL HeatWave 不仅速度更快,而且成本更低。
高可用性:MySQL 采用了一整套原生、完全集成的复制技术,具有高可用性和灾难恢复能力。为了履行服务级别协议承诺,客户的关键业务应用可以实现
恢复点目标 = 0(零数据丢失)
恢复时间目标 = 数秒(自动故障转移)
安全性:数据安全性要求企业采取数据保护措施,满足行业与政府法规要求,包括欧盟《通用数据保护条例》、支付卡行业数据安全标准、《健康保险可携性和责任法案》以及国防信息系统局的安全技术实施指南。对此,MySQL 企业版提供多种高级安全功能,包括身份验证/授权、透明数据加密、审计、数据屏蔽和数据库防火墙。
灵活性:MySQL Document Store 为用户开发传统 SQL 和 NoSQL 无模式数据库应用提供了充分的灵活性。开发人员可以在同一数据库和应用中混合、匹配关系数据与 JSON 文档。
MySQL 的定义
MySQL 是一种开源关系型数据库管理系统。与其他关系型数据库一样,MySQL 将数据存储在由行和列组成的表中。用户可以使用结构化查询语言(通常称为 SQL)定义、操作、控制和查询数据。由于 MySQL 是开源的,因此它的大量功能是在超过 25 年与用户密切合作的过程中开发出来的。
MySQL 软件是开源的
MySQL 是开源的,这意味着按照 GNU 通用公共许可条款,该工具可以免费使用。这也意味着,任何人都可以根据自己的使用需求自由修改软件的源代码。这使得 MySQL 分支为其他数据库变体(例如 MariaDB 和 Percona Server for MySQL)。MySQL 也可以通过其他许可用于商业用途。
关系型数据库
MySQL 所属的数据库类别称为关系型数据库管理系统 (RDBMS)。关系型数据库是信息的集合,它以预定义的关系组织数据,数据存储在一个或多个由列和行构成的表(或称“关系”)中,用户可以轻松查看和理解不同数据结构之间的关系。关系是不同表之间的逻辑连接,根据这些表之间的交互建立。
历史记录
MySQL 是作为商业编程语言 SQL 的扩展而创建的,SQL 基于 Edgar F. Codd 在论文中描述的关系模型。由 David Axmark、Allan Larsson 和 Michael Widenius 成立的瑞典公司 MySQL AB 于 1995 年开发并发布了 MySQL。“MySQL”这个名称是 Michael Wildenius 女儿的名字“My”和结构查询语言 (SQL) 的组合。Sun Microsystems 于 2008 年收购了 MySQL AB。Oracle Corporation 又于 2010 年收购了 Sun Microsystems,因此 MySQL 现在属于 Oracle Corporation。
MySQL 最初使用 C 和 C++ 编程语言进行开发,由于它在许多开源和专有操作系统中可用,因此多年来它的众多版本广受欢迎。最新的数据库版本 MySQL 8.0 版于 2018 年发布。
分支
多年来,MySQL 项目因各种原因产生过分支,有些分支甚至已经不复存在。在存留的分支项目中,最受欢迎的是 MariaDB 和 Percona Server for MySQL。出于对 Oracle 收购后 MySQL 商业化的担忧,MySQL 的原创始人创建了 MariaDB 分支,以确保 MySQL 继续开源。Percona Server for MySQL 是 MySQL 的另一个开源发行版,它旨在保持与 MySQL 的紧密兼容性。详细了解 MySQL 的版本以及围绕 MySQL 的整个生态系统。
界面
用户可以通过图形界面 (GUI) 或命令行界面工具访问 MySQL。
图形界面 (GUI)
与在命令行界面中使用基于文本的命令不同,GUI 提供由按钮和交互微件构成的集成式环境,使查询和应用开发变得十分直观。MySQL 开源项目和第三方集成商开发了许多 MySQL GUI,其中最受欢迎的一个是由 MySQL AB 开发的 MySQL Workbench,它也是开源的。其他广为人知的 GUI 包括 phpMyAdmin(一款用于 Web 应用开发的热门管理工具)和 HeidiSQL(一款开源管理工具,可用于管理除 MySQL 之外的其他数据库)。
命令行
用户还可以通过命令行工具访问 MySQL。这些工具也称为 MySQL 实用程序,随 MySQL 发行版一起提供,可在 MySQL shell 或其他命令行界面工具(如 Percona Toolkit)中使用文本命令进行调用。
部署 MySQL
用户可以使用开源代码在自己的物理机器上手动部署 MySQL,也可以通过下载某个打包的发行版来进行部署。MySQL 通常安装在单个实例或机器上,以纵向扩容作为提升性能的主要方式。但是,MySQL 可以设置为复制配置,其中包含一个主要节点和多个次要节点,次要节点可以在发生实例故障时提升为主要节点。
托管 MySQL 的另一种热门方式是通过云服务提供商 (CSP) 托管。在云服务提供商的环境中部署 MySQL 有多种方式。一种方式是直接在虚拟机上安装 MySQL 并自行管理。另一种方式是使用云服务提供商的代管式产品,云服务提供商负责处理 MySQL 管理中的许多运营任务,可以极大地简化 MySQL 的管理工作。Google Cloud 提供的代管式服务称为 Cloud SQL。Cloud SQL for MySQL 是一项全代管式数据库服务,可帮助您在 Google Cloud 上设置、维护、管理和控制 MySQL 关系型数据库。它提供关于安全性、高可用性和可观测性的增值服务,可以减少数据库管理员的重复劳动并帮助组织进行创新。 如需了解如何设置 MySQL 的 Cloud SQL 实例,请参阅这篇有关设置 Cloud SQL for MySQL 实例的最佳实践的文章。借助为用户提供的众多工具和选项,您可以非常轻松地从本地 MySQL 或云服务提供商的其他数据库迁移到 Cloud SQL for MySQL。
如需了解 Cloud SQL for MySQL 的全代管式产品与自行管理的 MySQL 的优点和差异,请参阅有关 MySQL 托管选项的文章。
MySQL 的优势
MySQL 快速、可靠、可扩缩且易于使用。MySQL 可以在台式机或笔记本电脑上与您的其他应用程序、Web 服务器等一起顺畅运行,几乎不需要关注。如果您将整个机器专门用于 MySQL,您可以调整设置以充分利用所有可用的内存、CPU 性能和 I/O 容量。MySQL 还可以纵向扩容为机器集群,并通过网络连接。
使用 MySQL 管理和存储数据还有许多其他优势,包括:
高可用性
MySQL 中的高可用性 (HA) 是指数据库引擎继续运行而不发生故障的能力。MySQL 中的 HA 设置可能非常复杂,具体取决于每个用户的特定可用性要求以及 MySQL 的部署方式。如需在 MySQL 中设置 HA,用户需要操心各种方面,包括数据复制、故障检测、故障切换和故障恢复机制,以及在故障切换后将数据库流量重定向到次要实例。Cloud SQL for MySQL 让您可以轻松地实现高可用性。详细了解 Google Compute Engine 上 MySQL 集群的高可用性或 Cloud SQL for MySQL 的全代管式高可用性体验。
安全
MySQL 的安全考虑因素范围十分广泛。一些重要的考虑因素与数据保护有关,例如通过数据冗余机制以及密码和特权、访问权限控制和网络安全等常规安全流程保护数据免遭损坏。详细了解 Google Cloud 的全代管式 MySQL 产品 Cloud SQL for MySQL 中的安全性。
备份和恢复
MySQL 通过多种机制(包括第三方工具)支持数据备份和恢复。备份和恢复 MySQL 的一些方法包括通过 mysqldump 实用程序、使用二进制日志进行增量备份以及使用复制。Cloud SQL for MySQL 提供自己的备份和恢复功能,可支持自动备份或按需备份。您可以详细了解这些备份类型。
灵活性
您可以轻松添加、更新或删除表和关系以及在必要时对数据进行其他更改,而不会更改整个数据库结构或影响现有的应用。
易用性
您可以轻松使用 SQL 运行复杂的查询,即便是新手用户也可以直观地与数据库进行交互。
性能
性能优化是管理任何数据库的关键方面。MySQL 提供了许多功能和调整选项,可让您轻松开发高性能应用。如需详细了解此类功能,请参阅这篇有关 MySQL 性能优化提示的文章。另一篇有关查询调整的文章还提供了特定的性能最佳实践。
MySQL 支持 ACID(原子性、一致性、隔离性、持久性)属性,可确保在发生错误、故障或其他潜在灾难时数据有效。
使用场景
MySQL 具有多样的功能,因此可用于许多不同的用例。下面详细介绍了一些用例。
Web 应用
如今,许多 Web 应用使用开源 LAMP 技术栈构建,而 MySQL 是这些应用的重要组成部分。LAMP 使用 Linux 作为操作系统,Apache 作为 Web 服务器,MySQL 作为数据库,以及 PHP、Python 或 Perl 作为编程语言。LAMP 可帮助开发者构建需要从 MySQL 等数据库检索最新信息的动态 Web 应用。信息可以包括用户帐号、用户详细信息、商品名称、客户记录、销售额等。使用 SQL,用户可以轻松地访问和操作存储在数据库中的信息。如需了解详情,请参阅 LAMP 和如何使用 LAMP 构建 Web 应用。
在线事务处理
如今,许多应用都需要一个能够迅速处理大量用户的大量数据库事务的数据库,例如 MySQL。MySQL 等 OLTP 数据库是许多日常 Web 事务(包括金融交易、出行预订、记录保留等)的基础。为了支持在线事务处理用例,MySQL 遵循 ACID 原则,支持 XML 和 JSON、存储过程、聚类和分区。它还提供了各种存储引擎选项,让您可以灵活地集成各种表类型的数据。
电子商务
电子商务应用需要管理用户、消费者信息、财务数据,还需要分析趋势以防止欺诈活动,MySQL 是这类应用的常用数据库。您可以使用 MySQL 等关系型数据库将信息整理到不同的表(商品、客户、订单)中,并且可以根据需要添加其他表。Airbnb、Uber、Netflix、Booking.com、Spotify 和 eBay 等全球大型企业使用 MySQL 为其电子商务应用提供支持。您还可以在混合部署中部署 MySQL,以完全支持电子商务用例。MySQL 可用作结构化数据的关系数据库,也可用作非结构化数据(例如商品详情或营销信息)的非关系型数据库。
SaaS 应用
SaaS 应用通常是全天候运行,因此它们要求停机时间尽可能少,安全性较高,并且能够随着需求的变化而扩缩。MySQL 易于部署、管理和扩缩,因此已成为构建 SaaS 应用的热门数据库选项。由于它是开源的,开发者可以快速开始使用,而无需支付专有软件的许可费。MySQL 全球社区非常活跃,并且贡献了许多提供额外功能的插件。
内容管理
MySQL 是 WordPress 和 Drupal 等内容管理系统 (CMS) 的热门数据库选项。CMS 会将博文、页面、图片、评论、类别、标记、自定义字段、用户和其他设置存储在 MySQL 数据库中。由于 CMS 通常每天有数千个甚至数百万个帐号,因此 MySQL 可以同时处理大型表和多个查询。随着关注人数的增长,MySQL 可以纵向或横向扩容以满足您的业务需求。
社交媒体
社交媒体应用的一个重要需求是连接各种数据存储,例如用户、群组和评论。这种应用场景促使社交媒体应用优先选择关系型数据库,而 MySQL 则是上佳选择。一些知名的例子包括 Twitter、Pinterest 和 LinkedIn。
MySQL 使用场景
云技术应用:MySQL 在云端非常流行。MySQL HeatWave 是一项全托管式云数据库服务,由集成的 HeatWave 内存中查询加速器提供支持。它将事务处理、机器学习 (ML) 以及跨数据仓库和数据湖的实时分析服务整合到了一个 MySQL Database 中,消除了 ETL 复制的复杂性、延迟、成本和风险。同时,借助 MySQL HeatWave AutoML,开发人员和数据分析师可以在 MySQL HeatWave 中全自动化地构建、训练、部署和解释机器学习模型。
MySQL 在以下领域非常流行
电商:全球许多大型电商应用(例如 Shopify、Uber 和 Booking.com)都使用 MySQL 运行事务系统。MySQL 在管理用户配置文件、凭据、用户内容和财务数据(包括付款)以及检测欺诈行为领域非常流行。
社交平台:Facebook、Twitter 和 LinkedIn 等全球最大的社交网络都在 MySQL 上运行。
内容管理:与单用途文档数据库不同,MySQL 可通过一个数据库提供 SQL 和 NoSQL 支持。MySQL Document Store 支持用户通过 CRUD 操作和 SQL 语言查询 JSON 文档中的数据,满足报告和分析要求。
SaaS 和 ISV:Ericsson、F5 和 IBM 等 2000 多家独立软件开发商、原始设备制造商和增值经销商都使用 MySQL 作为嵌入式数据库来提高应用、硬件和设备的竞争力,加快产品投放市场速度并降低销货成本。此外,MySQL 还为流行的 Zendesk 和 HubSpot 等 SaaS 应用提供强大支持。
其他使用 MySQL 的流行应用包括在线游戏、数字营销、零售销售点系统和 Internet of Things 监视系统等等。
基于 MySQL 企业版的本地部署应用:MySQL Enterprise Edition 提供一套全面的高级功能、管理工具和技术支持,可确保实现高水平的 MySQL 可扩展性、安全性、可靠性以及超长的正常运行时间。它可以降低开发、部署和管理业务关键型 MySQL 应用时的风险、成本和复杂性。此外,它还提供丰富的安全功能,包括 MySQL Enterprise Backup、Monitor、Firewall、Audit、Transparent Data Encryption 和 Authentication,能够可靠保护数据并满足监管和行业合规要求。
什么是MySQL
MySQL(官方发音为英语发音:/maɪ ˌɛskjuːˈɛl/ My S-Q-L,但也经常读作英语发音:/maɪ ˈsiːkwəl/ My Sequel)原本是一个开放源代码的关系数据库管理系统(DBMS),原开发者为瑞典的MySQL AB公司,该公司于2008年被昇阳微系统(Sun Microsystems)收购。2009年,甲骨文公司(Oracle)收购昇阳微系统公司,MySQL成为Oracle旗下产品。在本教程中,会让大家快速掌握MySQL的基本知识,并轻松使用MySQL数据库。
MySQL 介绍
MySQL在过去由于性能高、成本低、可靠性好,已经成为最流行的开源数据库,因此被广泛地应用在Internet上的中小型网站中,是最流行的关系型数据库管理系统,在WEB应用方面MySQL是最好的RDBMS(Relational Database Management System:关系数据库管理系统)应用软件之一。随着MySQL的不断成熟,它也逐渐用于更多大规模网站和应用,比如维基百科、Google和Facebook等网站。
但被甲骨文公司收购后,Oracle大幅调涨MySQL商业版的售价,且甲骨文公司不再支持另一个自由软件项目OpenSolaris的发展,因此导致自由软件社区们对于Oracle是否还会持续支持MySQL社区版(MySQL之中唯一的免费版本)有所隐忧,因此原先一些使用MySQL的开源软件逐渐转向其它的数据库。例如维基百科已于2013年正式宣布将从MySQL迁移到MariaDB数据库。MySQL的创始人麦克尔·维德纽斯以MySQL为基础,成立分支计划MariaDB。
MySQL 发展历史
很多人以为MySQL是最近15年内才出现的数据库,其实MySQL数据库的历史可以追溯到1979年,那时 Bill Gates 退学没多久,微软公司也才刚刚起步,而Larry的Oracle公司也才成立不久。那时有一个天才程序员 Monty Widenius 用 BASIC 设计了一个报表工具,过了不久,又将此工具使用 C 语言重写,移植到 UNIX 平台,当时只是一个底层的面向报表存储引擎名叫Unireg。
1985年,瑞典的几位志同道合小伙子(David Axmark、Allan Larsson 和Monty Widenius) 成立了一家公司,这就是MySQL AB 的前身。
1990年,TcX公司的客户中开始有人要求为他的API提供SQL支持。当时有人提议直接使用商用数据库,但是Monty觉得商用数据库的速度难以令人满意。于是,他直接借助于mSQL的代码,将它集成到自己的存储引擎中。令人失望的是,效果并不太令人满意,于是,Monty雄心大起,决心自己重写一个SQL支持。
1996年,MySQL 1.0发布,它只面向一小拨人,相当于内部发布。
1996年10月,MySQL 3.11.1发布(MySQL没有2.x版本),最开始只提供Solaris下的二进制版本。一个月后,Linux版本出现了。
1999~2000年,MySQL AB公司在瑞典成立。Monty雇了几个人与Sleepycat合作,开发出了Berkeley DB引擎,因为BDB支持事务处理,所以MySQL从此开始支持事务处理了。
2003年12月,MySQL 5.0版本发布,提供了视图、存储过程等功能。
2008年1月16日,Sun(太阳微系统)正式收购MySQL。
2009年4月20日,甲骨文公司宣布以每股9.50美元,74亿美元的总额收购Sun电脑公司。
2010年12月,MySQL 5.5发布,其主要新特性包括半同步的复制及对SIGNAL/RESIGNAL的异常处理功能的支持,最重要的是InnoDB存储引擎终于变为当前MySQL的默认存储引擎。
2013年6月18日,甲骨文公司修改MySQL授权协议,移除了GPL。但随后有消息称这是一个bug。
MySQL 版本
MySQL针对不同的用户,分了社区版和企业服务器版,还提供一些其它版本,是属于MySQL相关工具。
MySQL Community Server 社区版本,开源免费,但不提供官方技术支持。
MySQL Enterprise Edition 企业版本,需付费,可以试用30天。
MySQL Cluster 集群版,开源免费。可将几个MySQL Server封装成一个Server。
MySQL Cluster CGE 高级集群版,需付费。
MySQL Workbench(GUI TOOL)一款专为MySQL设计的ER/数据库建模工具。
MySQL Workbench是著名的数据库设计工具DBDesigner4的继任者。MySQL Workbench又分为两个版本,分别是社区版(MySQL Workbench OSS)、商用版(MySQL Workbench SE)。
MySQL 版本命命机制由三个数字组成,例如mysql-5.6.33-osx10.11-x86_64.tar.gz
第一个数字(5)主版本号:当你做了不兼容的 API 修改,
第二个数字(7)次版本号:当你做了向下兼容的功能性新增,合计,主要和次要的数字构成发布系列号。该系列号描述了稳定的特征集。
第三个数字(1)修订号:当你做了向下兼容的问题修正。这是一个新的bugfix释放增加。在大多数情况下,在一系列最新版本是最好的选择。
Github 上面有语义化版本标准, 开源仓库mojombo/semver,上面的版本命名大致是跟语义化版本标准差不多,你可以看语义化版本标准来学习版本名机制。通过语义化版本标准来理解MySQL版本命命机制。
MySQL 的优势
使用C和C++编写,并使用了多种编译器进行测试,保证源代码的可移植性。
支持AIX、BSDi、FreeBSD、HP-UX、Linux、Mac OS、Novell NetWare、NetBSD、OpenBSD、OS/2 Wrap、Solaris、Windows等多种操作系统。
为多种编程语言提供了API。这些编程语言包括C、C++、C#、VB.NET、Delphi、Eiffel、Java、Perl、PHP、Python、Ruby和Tcl等。
支持多线程,充分利用CPU资源,支持多用户。
优化的SQL查询算法,有效地提高查询速度。
既能够作为一个单独的应用程序在客户端服务器网络环境中运行,也能够作为一个程序库而嵌入到其他的软件中。
提供多语言支持,常见的编码如中文的GB 2312、BIG5、日文的Shift JIS等都可以用作数据表名和数据列名。
提供TCP/IP、ODBC和JDBC等多种数据库连接途径。
提供用于管理、检查、优化数据库操作的管理工具。
可以处理拥有上千万条记录的大型数据库。
亚马逊AWS云中的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 的用户群、活动、论坛和邮寄名单组成了一个内建的教育和支持网络。
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 部署,不仅经济实惠,而且可以调整硬件容量大小。