📜  MySQL版本

📅  最后修改于: 2020-11-17 01:52:38             🧑  作者: Mango

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语句,它将与DDL操作相关联的存储引擎操作,数据字典更新和二进制日志组合到单个原子事务中。

升级过程:以前,新MySQL版本的安装会在下次启动时自动升级数据字典表,然后,DBA应该手动调用mysql_upgrade命令以完成升级过程。在MySQL 8.0.16之后,它不依赖DBA来调用mysql_upgrade命令来完成升级过程。

安全性和帐户管理:添加了一些增强功能以改进安全性,并提供此功能以使DBA在帐户管理中具有更大的灵活性。

资源管理:现在,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值进行排序时,每个值都由sort键的可变长度部分而不是固定的1K大小表示,还添加了合并函数JSON_MERGE_PATCH来添加2个json对象和JSON_TABLE()函数。

数据类型支持:在数据类型规范中,它可以支持使用表达式作为默认值。

优化器增强功能:此版本添加了优化器增强功能,例如不可见索引,降序索引,支持功能索引的创建。它可以使用恒定折叠来比较列和恒定值。

窗口函数:此版本支持许多新的窗口函数,例如RANK(),LAG()和NTILE()。

其他一些重要功能包括:

  • 它增强了对正则表达式的支持。
  • 重新编写了错误日志以使用MySQL组件体系结构。
  • 引入了新的备份锁,该锁允许DML同时阻止操作,这可能导致状态不一致。
  • 它增强了连接管理。现在,可以为管理连接专门配置TCP / IP端口。它在压缩方面提供了更多控制,以最大程度地减少通过连接发送到服务器的字节。
  • 在以前的版本中,插件是用C或C++编写的。现在,必须仅使用C++语言编写。 MySQL 8.0.17版本提供了克隆插件,该插件允许本地或来自远程服务器的InnoDB数据。克隆插件还支持复制。
  • 在此版本中,时区支持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密码的MYSQL_PWD环境变量。

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视图已替换为内部系统视图,并重命名为:
Old Name New Name
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早期版本的发行历史:

Version Name Released Date End of Support Description
MySQL 5.1 14-11-2008 December 2013 This version contains the releases of MySQL 5.0 to MySQL 5.1.73 versions. To read about the first version of MySQL, click here.
MySQL 5.5 03-12-2010 December 2018 This version contains the releases of MySQL 5.5 to MySQL 5.5.62 versions.
MySQL 5.6 05-02-2013 February 2021 This version contains the releases of MySQL 5.6 to MySQL 5.5.45 versions.
MySQL 5.7 21-10-2015 October 2023 This version contains the releases of MySQL 5.7 to MySQL 5.6.27 versions.
MySQL 8.0 19-04-2018 April 2026 This version contains the releases of MySQL 8.0 to MySQL 8.0.21 versions.

注意:在收购Sun Microsystems之后,版本6停止工作,现在使用MySQL Cluster产品版本7和8。