MySQL 版本

2024年03月25日 MySQL 版本 极客笔记

MySQL 版本

版本化是一个将唯一版本 名称或数字 分类为唯一软件程序集的过程,因为它是开发和发布的。用于表示软件或程序初始发布的常用版本名称是1.0版本。目前没有行业标准规定版本号应该如何格式化。因此,每个公司都有自己的方法为软件分配版本名称。当软件和程序引入新功能、修复错误、修补安全漏洞时,版本号会增加,表示这些改进。

与MySQL一起使用的最新版本号 v5.8 。它包含许多重要的改变,包括新增和删除的新功能、修复的错误和安全问题,等等。这个版本包含从MySQL 8.0到MySQL 8.0.21的发布历史。它可以从 2018年4月 获得,并于 2026年4月 结束支持。

当您要在系统中安装MySQL时,您必须选择要使用的版本和分发格式。您可以通过两种方式安装MySQL,第一种是 开发版本 ,第二种是 通用可用性 (GA)版本。开发版本提供最新的功能,不推荐在生产环境中使用。通用可用性(GA)版本,也称为生产或稳定版本,主要用于生产。因此,您必须选择最新的通用可用版本。

让我们看看MySQL 8.0版本中的新功能。

MySQL 8.0新增功能

MySQL 8.0版本中添加了以下功能:

数据字典: 它将事务数据字典合并到存储有关数据库对象的信息中。之前的版本将数据存储在元数据文件和非事务表中。

原子DDL语句: 它是一种原子数据定义语言语句,将存储引擎操作、数据字典更新和与DDL操作相关联的二进制日志合并为单个原子事务。

升级过程: 以前,新MySQL版本的安装会自动升级数据字典表,然后DBA需要手动调用mysql_upgrade命令来完成升级过程。从MySQL 8.0.16开始,不再依赖DBA调用mysql_upgrade命令来完成升级过程。

安全和帐户管理: 增加了一些增强功能,以提高安全性,并在帐户管理中提供更大的DBA灵活性。

资源管理: 现在,MySQL允许您创建和支持资源组,将线程分配给特定组,以便根据组可用的资源执行。组属性可以通过组中的线程控制其资源消耗。

表加密管理: 现在,全局管理表加密通过定义和强制加密默认值来进行。default_table_encryption变量或DEFAULT ENCRYPTION子句在创建模式和通用表空间时定义加密默认值。

InnoDB增强功能: 在自增计数器、索引树损坏、内存缓存插件、InnoDB_deadlock_detect、表空间加密功能、存储引擎、InnoDB_dedicated_server、zlib库等方面增加了InnoDB增强功能。

字符集支持: 默认字符集由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()函数。

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

优化器增强: 此版本添加了优化器增强功能,如隐式索引、降序索引、支持创建功能索引。它可以在列和常量值之间的比较中使用常量折叠。

窗口函数: 此版本支持许多新的窗口函数,如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–upgrade 服务器选项、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 视图现在被内部系统视图取代,并更名为:
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系统变量。
  • 移除了multi_range_count、log_warning以及sql_log_bin系统变量的全局范围。
  • 一些与加密相关的项目如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月3日 2018年12月 该版本包含了MySQL 5.5到MySQL 5.5.62版本的发布。
MySQL 5.6 2013年2月5日 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年4月19日 2026年4月 该版本包含了MySQL 8.0到MySQL 8.0.21版本的发布。

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

本文链接:http://so.lmcjl.com/news/319/

展开阅读全文