MySQL

关系型数据库管理系统

MySQL

MySQL是一款由瑞典MySQL AB公司开发,Oracle旗下的开源的关系型数据库管理系统,广泛地应用于Internet上的中小型网站开发,是最流行的数据库管理系统之一。[3][0][1]1979年,MySQL最初是由一个名叫蒙蒂·维德纽斯(Monty Widenius)设计的一款底层面向报表的存储引擎工具——Unireg。1996年,MySQL1.0版本发布,1999-2000年,MySQL AB公司在瑞典成立。2005年10月,里程碑版本5.0发布,它使MySQL具备了企业级数据库管理系统的特性。2008年1月16号,MySQL被Sun公司收购,进入Sun MySQL时代。2009年4月20日,甲骨文(Oracle)收购Sun公司,进入Oracle MySQL时代。[2]2010年12月,MySQL5.5版本发布,该版本加强了MySQL各个方面企业级的特性。2015年,MySQL 5.7 GA重磅发布,新特性包括160万只读QPS等。[2]2016年9月,MySQL第一个开发里程碑8.0.0版本发布。[2]2023年10月,MySQL发布了8.2.0版本,这是最受欢迎的开源数据库的第二个创新版本。[4]同年7月,MySQL版本更迭为9.0.0,主要增加了JavaScript 存储程序、VECTOR 类型支持、内联和隐式外键约束等功能。[5][6]2025年1月21日,MySQL 9.2.0版本发布。[7]

MySQL是一款由瑞典MySQL AB公司开发,Oracle旗下的开源的关系型数据库管理系统,广泛地应用于Internet上的中小型网站开发,是最流行的数据库管理系统之一。[4][1][2][注1]

1979年,MySQL最初是由一个名叫蒙蒂·维德纽斯(Monty Widenius)设计的一款底层面向报表的存储引擎工具——Unireg。1996年,MySQL1.0版本发布,1999-2000年,MySQL AB公司在瑞典成立。2005年10月,里程碑版本5.0发布,它使MySQL具备了企业级数据库管理系统的特性。2008年1月16号,MySQL被Sun公司收购,进入Sun MySQL时代。2009年4月20日,甲骨文Oracle)收购Sun公司,进入Oracle MySQL时代。[3]2010年12月,MySQL5.5版本发布,该版本加强了MySQL各个方面企业级的特性。2015年,MySQL 5.7 GA重磅发布,新特性包括160万只读QPS等。[3]2016年9月,MySQL第一个开发里程碑8.0.0版本发布。[3]2023年10月,MySQL发布了8.2.0版本,这是最受欢迎的开源数据库的第二个创新版本。[5]同年7月,MySQL版本更迭为9.0.0,主要增加了JavaScript 存储程序、VECTOR 类型支持、内联和隐式外键约束等功能。[6][7]2025年1月21日,MySQL 9.2.0版本发布。[8]

MySQL采用的是结构化查询语言(SQL),这是一种被广泛应用于访问数据库的常用标准化语言。[1]MySQL由于其体积小、速度快、总体成本低、开放源代码、提供多种存储器引擎、支持大型数据等特点已成为多数中小型网站选择的网站数据库。[1][9]2009年,美国的科技网站《Inforworld》评出了10大最具价值开源软件,MySQL在其中排名第6。[10]2019年,MySQL在全球知名的数据库流行度排行榜网站DB-Engines的351 个受监测数据库管理系统中排名第一,获得DB-Engines2019“年度 DBMS”称号。[11]

名称由来

MySQL基本目录及大量库和工具均采用了前缀“my”,这是瑞典程序员Michael Widenius的女儿的名字,他是MySQL的共同创始人,在开发中起到了关键作用。[12]

MySQL的徽标是一只海豚,名字叫“Sakila”,是由MySQL AB的创始人从用户在“海豚命名”的竞赛提供的大量名字列表中筛选出来的,该名字由来自非洲埃斯瓦蒂尼(Eswatini,前斯威士兰)的开源软件开发者Ambrose Twebaze提供,它来源于名叫SiSwati的斯威士兰方言,也是Ambrose家乡乌干达附近桑塔尼亚Arusha地区一个小镇的名字。[12][9]

发展历程

1979年,MySQL最初是由一个名叫蒙蒂·维德纽斯(Monty Widenius)的小职员为一个叫TcX的公司设计的一款底层面向报表的存储引擎工具——Unireg。在1985年,Monty Widenius和几个志同道合的朋友在瑞典成立了一家公司,也就是MySQL AB的前身。他们自己设计了一个索引顺序存取数据算法,开发了高查询性能的数据引擎,也就是ISAM(Indexed Sequential Access Method)存储引擎核心算法的前身。利用ISAM结合mSQL(一种数据库系统)实现他们的应用需求。[3][13]

1996年,MySQL1.0版本发布,此时该版本只在小范围使用。10月,跳过2.x版本,3.11.1发布,一个月后Linux版本出现。此时MySQL只能在一个表上做一些Insert(插入)、Update(更新)、Delete(删除)和Select(选择)操作。[3]

1999至2000年,MySQL AB公司在瑞典成立,与Sleepycat合作开发了Berkeley DB引擎,从此开始支持事务处理。2000年4月,MySQL对旧储存引擎进行整理,命名为My-lSAM。2001年,在Heikki Tuuri的建议下,集成了MyISAMInnoDB储存引擎正式结合InnoDB引擎的4.0版本发布。此时MySQL已经支持大多数的SQL操作。2004年10月,经典的4.1版本发布,引入了更多新的语法,新增加了子查询。2005年10月,里程碑版本5.0发布,加入了游标、储存过程、触发器、视图和事务支持。[3][14]

2008年1月16号,MySQL被Sun公司收购,进入Sun MySQL时代。2009年4月20日,甲骨文Oracle)收购Sun公司,进入Oracle MySQL时代。2010年12月,MySQL5.5版本发布,InnoDB成为默认储存引擎。MySQL 5.5加强了MySQL各个方面企业级的特性。2011年4月,MySQL 5.6版本发布,由于对源代码的调整,2013年才正式发布。2013年4月,MySQL 5.7版本发布,并在并行控制、并行复制等方面进行了大量的优化调整。2015年,MySQL 5.7 GA重磅发布,新特性包括160万只读QPS等。[3]

2016年9月,MySQL第一个开发里程碑8.0.0版本发布。MySQL8 带来了全新的体验,比如支持NoSQL、JSON等,拥有比MySQL 5.7两倍以上的性能提升。[3]2017-2023年,MySQL不断更新,发布了8.0系列版本。2023年10月,MySQL发布了8.2.0版本,这是最受欢迎的开源数据库的第二个创新版本。对于InnoDB数据库、克隆、服务器编译等进行了优化。2024年1月,MySQL发布了8.3.0版。[5]同年7月,MySQL版本更迭为9.0.0,主要增加了JavaScript 存储程序、VECTOR 类型支持、内联和隐式外键约束等功能。[6][7]2025年1月21日,MySQL 9.2.0版本发布。[8]

MySQL 8.0与MySQL 5.6、MySQL 5.7的性能对比
MySQL 8.0与MySQL 5.6、MySQL 5.7的性能对比

历史版本

版本名称时间简介
MySQL 9.2.0[8]2025-01-21添加了CREATE_SPATIAL_REFERENCE_SYSTEM特权、JavaScript 库、用于 JavaScript 的 SQL 存储例程和会话变量 API、JavaScript 事务 API、JavaScript ENUM 和 SET 支持等功能
MySQL 9.1.0[15]2024-10-15添加了触发器不再由只读操作加载、EXPLAIN 输出增强功能、如果不存在,则创建视图、崩溃安全的数据库 DDL 语句等功能
MySQL 9.0.0[6]2024-07-01增添修改了JavaScript 存储程序、复制:SQL_AFTER_GTIDS 和 MTA、group_replication_set_as_primary() 和 DDL 语句、group_replication_set_as_primary() 的 DDL 和 DCL 语句跟踪等功能
MySQL 8.4.0[16]2024-04-30增添修改了InnoDB 系统变量默认值更改、MySQL 本机密码身份验证更改、Windows 上基于 SASL 的 LDAP 身份验证、MySQL 复制:SOURCE_RETRY_COUNT更改等功能
MySQL 8.3.0[5]2024-01-30MySQL 中添加了MySQL 本机密码身份验证更改、克隆插件、Windows 上基于 SASL 的 LDAP 身份验证、MySQL 复制:标记的 GTID、group_replication_set_as_primary() 和 DDL 语句等功能
MySQL 8.2.0 [17]2023-10-25增添了MySQL 本机密码身份验证更改、InnoDB 系统变量默认值更改、克隆插件、Windows 上基于 SASL 的 LDAP 身份验证等功能
MySQL 8.1.0[18]2023-07-18添加或更改MySQL 本机密码身份验证更改、InnoDB 系统变量默认值更改、MySQL 复制:SOURCE_RETRY_COUNT更改、复制术语向后兼容性、SQL_AFTER_GTIDS 和 MTA等功能
MySQL 8.0.0[19]2016-09-12增添了数据字典、原子数据定义语句 (Atomic DDL)、会话重用、安全和帐户管理、表加密管理、InnoDB 增强功能,优化了支持不可见索引、支持降序索引等功能
MySQL 6.0.2 m1[20][21]2016-03-29支持MySQL 5.5, 5.6和5.7、支持JDBC 4.2规范、支持Java 8平台(使用Connector/ j5.1)Java 7或更早版本、支持新的X DevAPI。启用X DevAPI等功能
MySQL 5.7.1[22]2013-04-23增添了不兼容的更改、分区表、mysql_config_editor 支持和选项 用于指定 TCP/IP 端口号和 Unix 套接字文件名等功能,并修复了部分错误
MySQL 5.6.10[23]2013-02-05tcmalloc 不再是 mysqld_safe --malloc-lib 选项的允许值、INFORMATION_SCHEMA FILES table 需要 PROCESS 权限等功能
MySQL 5.1.49[20][24]2020-04-20连接到服务器的允许的TLS协议版本已更改为:+ TLSv1、TLSv1.1和TLSv1.2、allowLoadLocalInfile 的默认值已更改为 false,删除了 Connector/J 5.1等
MySQL 5.1.4[20][25]2007-10-04修复了SQLGetDiagRec() 有时返回SQL_SUCCESS但没有错误消息、修复驱动程序安装程序 (myodbc-installer.exe) 无法创建新的 DSN、修复十进制 (8,2) 字段类型获得错误结果等内容
MySQL 5.0.3[20][26]2006-07-26添加了新权限 CREATE USER。* 安全性改进:服务器创建 '.frm', '.MYD', '.MYI','.MRG', '.ISD' 和 '.ISM 表文件(如果尚不存在同名文件)、删除对 ISAM 存储引擎的支持、添加了对 AVG(DISTINCT) 的支持等功能
MySQL 4.1.0[3][27]2004-10MySQL Enterprise Backup 现在支持 --ssl-mode 选项、mysqlbackup 的输出(进入流和消息日志)已改进为包括所有 mysqlbackup 采取的步骤,修复了使用 --no-locking 选项创建完整镜像备份时,mysqlbackup 无法写入二进制日志 信息添加到备份历史记录表和文件中等错误
MySQL 3.11.1[3][28]1996具有显式反馈的推荐模型、具有隐式反馈的推荐模型、基于内容的推荐模型等功能
MySQL 1.0[3]1996初始版本

备注:仅收录部分关键或者主要版本

环境和配置

MySQL数据库服务器的最低要求包括操作系统、处理器、内存、存储空间、网络要求和安全性要求。[29]

操作系统要求Windows:Windows Server 2008 R2或更高版本,64位操作系统
Linux:如Ubuntu、CentOS等,64位操作系统
处理器要求多核处理器,建议使用至少具有两个物理核心的处理器
高时钟速度,建议主频在2.0GHz以上
内存要求最小内存要求为1GB,但建议使用2GB或更多以提供更好的性能
存储空间要求最小存储空间要求为10GB,但建议使用更大的存储空间以容纳更多的数据和索引
网络要求稳定的网络连接,以确保数据库与其他系统之间的通信顺畅
安全性要求建议使用强密码保护数据库访问权限
建议启用SSL加密连接以提高数据传输的安全性
建议定期备份数据库以防止数据丢失
参考资料[29]
操作系统硬件平台软件版本
9.x8.4 LTS8.0
Oracle Linux / Red Hat / CentOS / Rocky Linux
Oracle Linux 9 / Red Hat Enterprise Linux 9 / Rocky Linux 9x86_64、arm64
Oracle Linux 8 / Red Hat Enterprise Linux 8 / CentOS 8 / Rocky Linux 8x86_64、arm64
Oracle Linux 7 / Red Hat Enterprise Linux 7 / CentOS 7x86_64、arm64
Oracle Solaris
Solaris 11 (Update 4+)SPARC_64
Ubuntu
Ubuntu 24.04 LTSx86_64
Ubuntu 22.04 LTSx86_64
Ubuntu 20.04 LTSx86_64  
SUSE
SUSE Enterprise Linux 15 / OpenSUSE 15 (15.6)x86_64
Debian
Debian GNU/Linux 12x86_64
Microsoft Windows Server
Microsoft Windows 2022 Serverx86_64
Microsoft Windows 2019 Serverx86_64
Microsoft Windows 2016 Serverx86_64
Microsoft Windows
Microsoft Windows 11x86_64
Microsoft Windows 10x86_64  
Apple
macOS 15x86_64、arm64
macOS 14x86_64、arm64
参考资料[30]

产品功能

数据索引:MySQL的数据索引功能可以帮助用户快速定位和检索数据库中的数据。通过在表中创建索引,可以提高数据库查询的速度和效率。MySQL支持多种类型的索引,包括主键索引、唯一索引、普通索引和全文索引等。主键索引是唯一标识一条记录的索引,唯一索引保证索引值的唯一性。索引的常见操作主要包括创建索引和删除索引等。[31]

创建普通索引(示例)
创建普通索引(示例)

操作数据库:MySQL数据库操作可以分为创建、选择、查看和删除4类。用户可以使用CREATE语句及insert into等其它子语句创建数据库、用use命令于选择一个数据库,可以使用show databases命令查看MySQL数据库中所有已经存在的数据库和使用drop database命令删除数据库。[32]

创建数据库(示例)
创建数据库(示例)

操作数据表:数据库创建完成后,即可在命令提示符下对数据库进行操作,如创建数据表、更改数据表结构以及删除数据表等。用户可以使用create table命令创建数据表,使用show columns命令或describe命令查看指定数据表的表结构。采用alter table命令修改表结构。[32]

修改/更新数据表数据(示例)
修改/更新数据表数据(示例)

数据查询:查询数据是指从数据库中获取需要的数据,用户可以根据自己对数据的需求来查询不同的数据。在MySQL中,对数据库的查询使用SELECT语句,其功能非常强大,使用较为灵活。[31]

SELECT语句的语法格式
SELECT语句的语法格式

存储过程:存储过程是一种在数据库中存储复杂程序,以便外部程序调用的数据库对象。存储过程包含完成特定功能的SQL语句集,经编译创建并保存在数据库中。用户可指定存储过程的名字并给定相应参数来调用执行。用户可以创建存储过程以及使用存储过程。[31]

创建存储过程的格式
创建存储过程的格式

函数:MySQL函数是MySQL数据库提供的内置函数。MySQL函数包括数学函数、字符串函数、日期和时间函数、条件判断函数、系统信息函数、加密函数、格式化函数等。函数的执行速度非常快,可以提高MySQL的处理速度,简化用户的操作。[9]

MySQL内置函数类别及作用
MySQL内置函数类别及作用

视图:数据库中的视图,它是从一个或几个基本表(或视图)通过某种定义规则组织起来的虚拟表。使用视图,可以定制用户数据,聚焦特定的数据。用户可以创建视图以及修改和删除视图。[33]

创建视图的语法
创建视图的语法

MySQL备份与恢复:数据备份是保证数据安全的最后一道屏障。备份使数据库的失效次数减到最少,从而使数据库保持最大的可用性。用户可以使用mysqldump与BingLog两种方式对MySQL数据库进行备份与恢复操作技术。[33]

mysqldump备份所有数据库语法
mysqldump备份所有数据库语法

服务场景

MySQL目前大多应用于互联网行业,如:百度、腾讯、淘宝、京东、网易、新浪Google、Facebook、TwitterGitHub 等都在使用 MySQL。搜索、社交、电商、游戏的核心存储往往也是 MySQL。其常见的应用场景:[34]

Web 网站系统:由于MySQL数据库的安装配置简单,运营成本低,性能好, MySQL 是开放源代码的,完全可以免费使用,因此Web 网站开发者成为了 MySQL 的主要客户群。[35][36]

日志记录系统:MySQL 数据库的插入和查询性能高效。比如处理用户的登录日志,操作日志等,都是常用的应用场景。[35]

数据仓库系统:通过 MySQL 的简单复制功能,可以将数据从一台主机复制到另外一台 ,在局域网、广域网内都可以复制,从而提升计算机的性能和数据存储量MySQL免费并且使用成本低。 [35]

嵌入式系统MySQL在资源使用方面的伸缩性非常大,无论在资源充裕还是资源稀缺的环境都可正常运行。[35][36]而且MySQL有专门针对于嵌入式环境的版本。[35]

产品特色

开放源代码使用 C和 C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性,同时为多种编程语言提供了 API。这些编程语言包括 C、C++、Python、Java、PerlPHPEiffelRuby,.NET和 Tcl 等,并且完全开放。同时,开源也带来免费,各个技术爱好者可以一起审核程序、优化问题,并且无需付费。[9]

完全基于多线程核心:支持多处理器,因此MySQL是一个真正的多用户、多线程SQL数据库服务器,支持大容量的用户和并发业务操作,是中小企业特别是Linux平台的首选自由数据库。[37]

插件式存储引擎:MySQL使用的是插件式存储引擎。它将mylsam、innodb、ndb、tokudb等引擎兼容并包,其中最广泛使用的是MyISAMInnoDB两种存储引擎。MyISAM是MySQL最早的ISAM存储引擎的升级版本,也是MySQL默认的存储引擎。[38]

多平台支持:MySQL可以支持C++、Java、PerlPythonPHP等等,可以在UnixWindowsLinux等各种平台使用。[37]

数据类型丰富:除了常用类型外,MySQL还支持变长的BLOB类型,以及在其他数据库系统比较少见的枚举类型ENUM和SET。[37]

应用程序接口简单:MySQL基于客户/服务器结构,其客户库中提供了一个完整而又一致的语言包装器,可以方便地使用PHP、Java、Perl等语言连接到MySQL。[37]

逻辑架构

MySQL逻辑架构整体分为三层:客户端层、服务器层和存储引擎层。[39]

最上层为客户端层,主要负责应用连接处理、用户鉴权和安全管理等,这些主要功能均在这一层处理。比如连接处理、授权认证、安全等等。[39]最上层的服务并不是MySQL所独有的,大多数基于网络的客户端/服务器的工具或者服务都有类似的架构。[40]

第二层为服务器层。大多数MySQL的核心服务功能都在这一层,包括查询解析、分析、优化、缓存以及所有的内置函数(例如,日期、时间、数学和加密函数),所有跨存储引擎的功能都在这一层实现:存储过程、触发器、视图等。[39]

第三层为存储引擎。存储引擎负责MySQL中数据的存储和提取和Linux下的各种文件系统,服务器通过API与存储引擎进行通信。[39][40]

MySQL逻辑架构图
MySQL逻辑架构图

环境变量

MySQL中主要直接及间接使用的环境变量如下:[41]

PATH用于查找MySQL程序
MYSQL_HOME存放选项文件my.cnf 的目录路径
MYSQL_DATA支持所有标准 SQL 数值数据类型
MYSQL_TCP_PORT指定MySQL服务的默认TCP/IP端口号
MYSQL_UNIX_PORT指定连接MySQL服务的默认Unix套接字文件,用于连接本地主机
MYSQL_PWD指定连接MySQL服务的默认密码,使用明文极不安全
MYSQL_HOST指定连接MySQL服务的默认目标主机
MYSQL_USER指定连接MySQL服务的默认用户名
MYSQL_PS1在mysql命令行客户端中使用的命令提示符

存储引擎

一般来说,MySQL有以下4种引擎:MyISAM、HEAP、InnoDB和Berkley(BDB)。MySQL不同的版本所支持的引擎是有差异的。

MyISAM:MyISAM是MySQL的ISAM扩展格式和默认的数据库引擎。除了提供ISAM里所没有的索引和字段管理的大量功能,MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作。MyISAM还有一些有用的扩展,例如用来修复数据库文件的MyISAMChk工具和用来恢复浪费空MyISAMPack工具。MyISAM提供了大量的特性,包括全文索引、压缩、空间函数(GIS)等。[42]

MERGE:MERGE存储引擎是一组MyISAM表的组合,这些MyISAM表结构必须完全相同,尽管其使用不如其他引擎突出,但是在某些情况下非常有用。MERGE表就是几个相同MyISAM表的聚合器。[42]

HEAP:HEAP允许只驻留在内存里的临时表格。HEAP表格在需要使用SELECT表达式来选择和操控数据的时候非常高效。[42]

InnoDB和Berkley DB(BDB):InnoDB是MySQL的默认事务型引擎,它被设计用来处理大量的短期(short-lived)事务。InnoDB还引入了行级锁定和外键约束,在以下场合使用InnoDB是理想的选择。[42]

Archive引擎:Archive存储引擎只支持INSERT和SELECT操作,在MySQL 5.1之前不支持索引。Archive表适合日志和数据采集类应用。Archive引擎支持行级锁和专用的缓存区,所以可以实现高并发的插入,但它不是一个事物型的引擎,而是一个针对高速插入和压缩做了优化的简单引擎。[42]

数据类型

在MySQL数据库中,每一条数据都有其数据类型。MySQL支持的数据类型主要分成3类:数字类型、字符串(字符)类型、日期和时间类型。[43]

数字类型:

MySQL支持所有的ANSI/ISO SQL 92数字类型,包括准确数字的数据类型(NUMERIC、DECIMAL、INTEGER和SMALLINT)、近似数字的数据类型(FLOAT、REAL和DOUBLE )。[43]

字符串(字符)类型:

字符串类型可以分为3类:普通的文本字符串类型(CHAR和VARCHAR)、可变类型(TEXT和BLOB)和特殊类型(SET和ENUM)。它们之间都有一定的区别,取值的范围不同,应用的地方也不同。[43]

日期和时间类型:

日期和时间类型包括DATETIME、DATE、TIMESTAMP、TIME和YEAR。每种类型都有其取值的范围,如赋予它一个不合法的值,将会被“0”代替。[43]

支持的SQL语言

SQL语句类型上讲,MSQL支持的SQL语言主要是四种类型:数据操作语言(DML)、数据定义语言(DDL)、数据查询语言(DQL)和数据控制语言(DCL)。不同语句被数据库引擎执行,其执行方式、复杂程度都不相同。其中最为复杂的是DQL查询语句。查询语句的执行。[38]

1.数据定义语言(Data Definition Language,DDL):用户可以对数据库的结构描述定义,包括数据库的完整性、安全保密定义,如口令、级别、存取权限等。这些定义存储在数据字典中,是数据库管理系统的基本依据。数据定义语言涉及T-SQL语言中的CREATE TABLECREATE VIEWCREATE INDEX等语句。[44][34]

2.数据操纵语言(Data Manipulation Language, DML)主要用于操纵数据库中的数据,包括INSERT、SELECT、UPDATE、DELETE等语句。INSERT用于插入数据;UPDATE用于修改数据;DELETE用于删除数据;SELECT则可以根据用户需要从数据库中查询一条或多条数据。[1]

3.数据查询语言(Data Query Language,DQL):一般指数据检索语句。基本结构是由SELECT子句、FROM子句、WHERE子句组成的查询块,即“SELECT <字段名表> FROM <表或视图名> WHERE <查询条件>”的格式, SQL Server 2008数据库对标准的数据查询语言进行了功能上的扩展。[44][31]

4.数据控制语言(Data Control Language,DCL):用于安全管理,确定哪些用户可以查看或修改数据库中的数据。[38]数据控制语言用来授予或回收访问数据库的某种特权,并控制数据库操纵事务发生的时间及效果,对数据库实行监视等。[33]

管理工具

MySQLDumper这是一款社区开源的逻辑备份工具。可有效解决使用PHP进行大数据库备份和复的问题[45]
phpMyAdmin这是一款MySQL维护工具,管理数据库非常方便,缺点是不方便大数据库的份和恢复[46]
MySQL GUI Tools这是一款图形化管理工具,功能丰富,缺点是没中文界面[47]
Navicat这是一款数据库管理工具,和微软SQLServer的管理器相似,简单实用。其用户界面图形化,使用以及管理来较轻松[48]
MySQL ODBC Connector这是访问数据库的开放式标准应用程序编程接口(API)可实现SQLServer、Access和MySQL之间的数据转换。除此以外,这个它还支持ASP访问MyQL数据库[49]

DbNinja这是MySQL数据库管理与开发应用程序,支持触发器、事件、视图、存储过程和外键等最新功能。还可以导入和备份数据、MySQL对象结构及管理用户等[50]
Dbeaver这是一款免费开源的通用数据库管理和开发工具可运用于多种不同的引擎,包括MySQL,MSSQL,Oracle、SQLite、Sybase等。由Java编写而成,该应用程序适用于所主流操作系统。[51]
SQL Lite Manger这款基于web的开源应用程序,用于管理无服务器、零配置SQL Lite数据库。该程序是用PHP写成,可以控制多个数据库。SQL Lite Manager主要用来查询数据,将MySQL查询转化为兼容SQL Lite数据库,并能建和编辑触发器[52]
HeidiSQL
这是专为web开发人员设计的工具,微软SQL数据库和PostgreSQL,通过这个工具,可以浏览和编辑数据、创建和编辑表格、视图、过程、触器和日志安排等事件[53]
Sequel Pro这是基于MySQL数据库的一种Mac数据库管理应用程序,用户通过Sequel Pro,可以在本地和远程服务器上直接问MySQL数据库[54]

甲骨文收购MySQL

2009年外媒评价“甲骨文收购MySQL”为IT市场9大失败事件之一,同时MySQL联合创始人大卫·艾克马克(David Axmark)也在2010年的采访中表示:“甲骨文没有真正的理由支持MySQL,尽管当前MySQL与甲骨文数据库之间的竞争不是很激烈,但随着MySQL的日益壮大,对甲骨文数据库的发展是不利的。”[55][56][57]

切换数据库

2016年,优步(Uber)在博客中宣布已经把数据库从Postgres切换到了MySQL,该公司负责的工程师表示,Uber早期架构是由Python语言编写的后端应用构成,使用了Postgres数据库。但由于随后优步应用的架构发生明显改变,转型为微服务模型和新数据平台,因此需要改用基于MySQL的数据库分片层。切换到Schemaless和其它基于MySQL的后端服务最主要的原因是Postgres数据复制效率低下,需要重写每一个行索引,而MySQL只更新改变的索引。[58][59]

所获荣誉

honor10大最具价值开源软件排名第6位
名称美国科技网站《Inforworld》
time2009年
type
honor2019年度 DBMS
名称DB-Engines
time2019年
type

参考资料[10][11]

参考资料 59

  1. 参考 1
  2. MySQL — MySQL官网
  3. 参考 3
  4. 参考 4
  5. MySQL 8.3 发行说明 — MySQL官网
  6. MySQL 9.0 Release Notes — MySQL官网
  7. 1.4?What Is New in MySQL 9.0 — MYSQL官网
  8. MySQL 9.2 Release Notes — MySQL官网
  9. 参考 9
  10. 10大最具价值开源软件 Ubuntu和MySQL上榜——中新网 — 中国新闻网
  11. DB-Engines 2019:MySQL 获得“年度数据库”称号 — 新浪科技
  12. History of MySQL — MySQL
  13. 参考 13
  14. 参考 14
  15. MySQL 9.1 Release Notes — MySQL 官网
  16. MySQL 8.4 Release Notes — MySQL官网
  17. MySQL 8.2 Release Notes — MySQL官网
  18. MySQL 8.1 发行说明 — MySQL官网
  19. MySQL 8.0 发行说明 — MySQL官网
  20. MySQL Product Archives — MySQL官网
  21. MySQL Connector/J 6.0.2 m1 Development Release has been released — MySQL官网
  22. MySQL 5.7.1 中的更改(2013-04-23,里程碑 11) — MySQL官网
  23. MySQL 5.6 Release Notes — MySQL官网
  24. MySQL Connector/J 5.1.49 GA has been released — MySQL官网
  25. MySQL Connector/J 6.0.2 m1 Development Release has been released — MySQL官网
  26. MySQL Connector/J 6.0.2 m1 Development Release has been released — MySQL官网
  27. Changes in MySQL Enterprise Backup 4.1.0 (2017-03-03) — MySQL 官网
  28. 3.11.1 Recommendation Model Types — MYSQL 官网
  29. Mysql数据库服务器最低要求 — 腾讯云
  30. Supported Platforms: MySQL Database — MySQL官网
  31. 参考 31
  32. 参考 32
  33. 参考 33
  34. 参考 34
  35. 参考 35
  36. 参考 36
  37. 参考 37
  38. 参考 38
  39. 参考 39
  40. 参考 40
  41. 参考 41
  42. 参考 42
  43. 参考 43
  44. 参考 44
  45. 4 .5.4 mysqldump - 数据库备份程序 — MySQL官网
  46. 将 MySQL 引入 Web — phpmyadmin官网
  47. MySQL产品存档 — MySQL官网
  48. Navicat中国
  49. MySQL Connector/ODBC 开发人员指南 — MySQL官网
  50. 适用于 MySQL 的 DbNinja — dbninja官网
  51. DBeaver社区 — DBeaver官网
  52. 这是什么 — sqlitemanager
  53. What's this? — heidisql
  54. sequelpro介绍 — sequelpro
  55. 2009年IT市场9大失败事件 甲骨文收购MySQL — 中国新闻网
  56. MySQL创始人:甲骨文没有真正理由支持MySQL ——中新网 — 中国新闻网
  57. 13 年,MySQL 之父赌赢了:另起炉灶的 MariaDB 成功上市! — 腾讯网
  58. 为什么 Uber Engineering 从 Postgres 切换到 MySQL — 优步博客
  59. 优步切换数据库:从Postgres到MySQL,架构改变 — IT之家

注释

  1. 数据截至2025年1月
广告位:底部(ad-bottom)—— 请到中台「公共区块」编辑此内容