MySQL 版本
版本化是将唯一版本
名称或编号归类为开发和发布的唯一软件程序集的过程。表示软件或程序的初始发行版的常用版本名称是1.0版。没有可用的行业标准规则来决定应如何格式化版本号。因此,每个公司都有自己的方法来为软件分配版本名称。引入软件和程序的新功能后,修复了错误,修复了安全漏洞,然后增加了表示这些改进的版本号。
MySQL
v5.8版本包含许多必要的更改,包括添加和删除的新功能,已修复的错误和安全性问题等。此版本包含从MySQL 8.0到MySQL 8.0.21的发行历史。它可从
2018年4月开始使用,并在
2026年4月中终止支持。
要在系统中安装MySQL时,必须选择要使用的版本和发行格式。您可以通过两种方式安装MySQL,第一种是
开发版本,第二种是
常规可用性(GA)版本。该开发发行版提供了最新功能,不建议在生产中使用。通用发布(GA)版本,也称为正式发布或稳定发布,主要用于生产。因此,您必须决定最新的General Availability版本。
让我们看看MySQL 8.0版本中的新增功能。
MySQL 8.0中添加的功能
MySQL 8.0版本中添加了以下功能:
数据字典: 它结合了事务性数据字典来存储有关数据库对象的信息。以前的版本将数据存储在元数据文件和非事务表中。
Atomic DDL语句: 这是一个Atomic Data Definition Language语句,它结合了存储引擎操作,数据字典更新和
升级过程: 以前,新MySQL版本的安装会在下次启动时自动升级数据字典表,然后期望DBA手动调用mysql_upgrade命令以完成升级过程。在MySQL 8.0.16之后,不再依赖DBA调用mysql_upgrade命令来完成升级过程。
安全和帐户管理:
资源管理: 现在,MySQL允许您创建和支持资源组,将线程分配给特定的组以便它可以根据该组可用的资源执行。组属性可以通过组中的线程来控制其资源消耗。
表加密管理: 现在,表加密是通过定义和强制执行加密默认值来全局管理的。 default_table_encryption变量或DEFAULT ENCRYPTION子句定义创建架构和常规表空间时的加密默认值。
InnoDB增强功能: InnoDB增强功能添加在自动增量计数器,索引树损坏, memcached插件,InnoDB_deadlock_detect,表空间加密功能,存储引擎,InnoDB_dedicated_server,zlib库等。
字符集支持: 现在默认字符集已从latin1更改为utf8mb4、新的字符集具有许多新的排序规则,包括utf8mb_ja_0900_as_cs。
JSON增强功能: MySQL的json功能引入了以下增强功能或附加功能: 内联路径(->>)运算符,JSON聚合函数JSON_ARRAYAGG()和JSON_OBJECTAGG(),实用程序函数JSON_PRETTY(),JSON_STORAGE_SIZE()(,JSON_STORAGE_FREE()。)在对JSON值进行排序时,现在每个值都由排序键的可变长度部分表示,而不是固定的1K
数据类型支持: 在数据类型规范中,它可以支持将表达式用作以下内容: 大小。它还添加了合并功能JSON_MERGE_PATCH以添加2个json对象和JSON_TABLE()函数。
优化器增强功能: 该版本添加了优化器增强功能,例如不可见索引,降序索引,支持创建功能索引。它可以使用常量折叠来比较列和常量值。
Window函数: 此版本支持许多新的窗口函数,例如RANK(),LAG()和NTILE()。
其他一些重要功能包括:
它增强了对正则表达式的支持。
重写了错误记录以使用MySQL组件体系结构。
引入了新的备份锁,该锁允许DML同时阻止操作,这可能导致状态不一致。
它增强了连接管理。现在,可以为管理连接专门配置TCP/IP端口。它提供了更多的压缩控制权,以最大程度地减少通过连接到服务器的发送字节。
在以前的版本中,插件是用C或C ++编写的。现在,必须仅使用C ++语言编写。 MySQL 8.0.17版本提供了克隆插件,该插件允许本地或来自远程服务器的InnoDB数据。 clone插件还支持复制。
在此版本中,时区支持TIMESTAMP和DATETIME值。
此版本还添加了SQL标准表值构造函数和显式表子句。
MySQL 8.0中不推荐使用的功能
MySQL 8.0版本不推荐使用许多功能,可以在以后的系列中删除。一些功能说明如下:
不推荐使用字符集utf8mb3、
不推荐使用sha256_password并在以后的版本中将其删除。现在,默认身份验证将为caching_sha2_password。
validate_password插件即将被弃用,可以在以后的版本中删除。
对于ALTER TABLESPACE和DROP TABLESPACE,将不推荐使用ENGINE子句。
对于FLOAT和DOUBLE列类型,不建议使用AUTO_INCREMENT和UNSIGNED属性。
现在,它使用JSON_MERGE_PRESERVE()函数而不是JSON_MERGE()。
不推荐使用SQL_CALC_FOUND_ROWS修饰符,FOUND_ROWS()函数,-no--dd--升级服务器选项,mysql_upgrade客户端和mysql_upgrade_info。
现在不建议使用MYSQL_PWD环境变量来指定MYSQL密码。
在MySQL 8.0中已删除的功能
可用,您的应用程序需要更新。
已删除InnoDB_locks_unsafe_for_binlog系统变量,将information_schema_stats变量替换为information_schema_stats_expiry。
与帐户管理相关的一些功能已删除,这些功能包括: 用于创建用户的GRANT语句,PASSWORD()函数,old_passwords系统变量等。
与InnoDB系统表相关的代码已过时,并且已从MySQL 8.0版本中删除。现在,基于InnoDB系统表的INFORMATION_SCHEMA视图已替换为内部系统视图,并重命名为:
旧名 |
新名称 |
INNODB_SYS_COLUMNS |
INNODB_COLUMNS |
INNODB_SYS_DATAFILES |
INNODB_DATAFILES |
INNODB_SYS_FIELDS |
INNODB_FIELDS |
INNODB_SYS_FOREIGN |
INNODB_FOREIGN |
INNODB_SYS_FOREIGN_COLS |
INNODB_FOREIGN_COLS |
INNODB_SYS_INDEXES |
INNODB_INDEXES |
INNODB_SYS_TABLES |
INNODB_TABLES |
INNODB_SYS_TABLESPACES |
INNODB_TABLESPACES |
INNODB_SYS_TABLESTATS |
INNODB_TABLESTATS |
INNODB_SYS_VIRTUAL |
INNODB_VIRTUAL |
此版本还删除了一些查询捕获,包括FLUSH QUERY CACHE,RESET QUERY CACHE语句,SQL_CACHE SELECT修饰符等。
由于.frm文件已过时,因此删除了sync_frm系统变量。
sql_log_bin系统变量的multi_range_count,log_warning和全局作用域已删除。
一些与加密有关的项目,例如ENCODE(),DECODE(),ENCRYPT()等也已删除。
它删除了mysql_install_db程序,如果它使用--initialize或--initialize_insecure选项。
让我们通过下表了解MySQL早期版本的发布历史:
版本 |
发布/终止 |
说明 |
MySQL 5.1 |
2008-11-14/2013年12月 |
此版本包含MySQL 5.0到MySQL 5.1.73的发行版。读书关于MySQL的第一个版本,请单击这里。 |
MySQL 5.5 |
2010-12-03/2018年12月 |
此版本包含MySQL 5.5至MySQL 5.5.62版本。 |
MySQL 5.6 |
2013-02-05/2021年2月 |
此版本包含MySQL 5.6到MySQL 5.5.45版本。 |
MySQL 5.7 |
2015-10-21/2023年10月 |
此版本包含MySQL 5.7到MySQL 5.6.27的版本。 |
MySQL 8.0 |
2018-04-19/2026年4月 |
此版本包含MySQL 8.0到MySQL 8.0.21版本。 |
注意: 在收购Sun Microsystems之后,版本6停止工作,现在使用MySQL Cluster产品版本7和8、