博客
关于我
Mysql5.7深入学习 1.MySQL 5.7 中的新增功能
阅读量:790 次
发布时间:2023-02-11

本文共 2252 字,大约阅读时间需要 7 分钟。

MySQL 5.7 的新功能、弃用和删除功能说明

MySQL 5.7 引入了许多新功能,同时也弃用了部分功能,并删除了某些不再支持的功能。以下是对这些变化的详细说明。


1. MySQL 5.7 中的新功能

安全性改进

MySQL 5.7 提供了多项安全增强功能:

  • 身份验证插件支持:在 MySQL 8.0 中,默认使用身份验证插件。MySQL 5.7.23 及以上版本支持客户端身份验证插件,提高了与 MySQL 8.0 及更高版本的兼容性。
  • 强化账户安全:服务器要求系统表中的帐户行具有非空列值,并禁用具有空值的帐户。建议使用身份验证插件管理账户。
  • 自动密码过期:管理员可以设置自动密码过期策略,要求超过允许生存期的帐户更改密码。
  • 帐户锁定和解锁:支持锁定和解锁帐户,增强账户管理权限。
  • 自动 SSL 启用:默认情况下,使用 OpenSSL 编译的 MySQL 服务器可以在启动时自动生成缺少的 SSL 和 RSA 证书及密钥文件。
SQL 模式
  • 严格 SQL 模式:事务性存储引擎的严格 SQL 模式默认启用,禁止包含不确定性查询的非确定性语句。
  • SQL 模式扩展:新增了 ONLY_FULL_ON_COMMITTRANSITIONAL_ONLYINNODB_ONLY 模式,默认情况下启用这些模式,并计划未来将其作为显式模式删除。
在线更改表

支持重命名索引的子句,可以就地更改表,无需表复制操作,适用于所有存储引擎。

全文解析器插件

引入了内置的全文 ngram 解析器插件,支持中文、日语和韩语;以及可安装的 MeCab 解析器插件,专用于日语。

InnoDB 增强

InnoDB 提供了多项改进:

  • 在线 ALTER TABLE:支持重命名索引的子句。
  • 临时表优化:临时表的元数据不再存储在系统表中,而是通过新的表提供快照。
  • 空间数据类型支持:InnoDB 现支持空间数据类型,通过新的内部数据类型进行映射。
  • 缓冲池优化:提供多线程页面清理程序和缓冲池调整大小功能。
JSON 支持

MySQL 5.7.8 开始支持 JSON 数据类型,提供了丰富的 JSON 函数和聚合功能:

  • 创建和修改JSON_CREATE_ARRAY()JSON_CREATE_OBJECT()JSON_CREATE_STRING() 等函数。
  • 搜索和聚合JSON_EXTRACT()JSON_OBJECTAGG()JSON_ARRAYAGG()
  • 验证和转换:提供多种验证和转换函数。
系统和状态变量

性能架构表中的系统和状态变量信息现在在 INFORMATION_SCHEMA 中可用,影响查询和操作。

触发器和优化
  • 触发器限制:以前对触发器事件和操作时间的组合有限制,现在解除限制。
  • 优化程序提示:可以在单个 SQL 语句中向优化程序提供提示,提高性能调优精确度。
其他改进
  • 默认安装行为:安装默认创建一个帐户,生成随机密码并标记为已过期。
  • 字符集支持:新增 GB18030 字符集支持。

2. MySQL 5.7 中弃用的功能

SQL 模式
  • SQL 模式SQL_MODESQL92_MODESQL99_MODE 已弃用,但默认情况下处于启用状态。未来计划将其作为显式模式删除。
帐户管理
  • 系统变量mysql.user 表中 IDENTIFIED_BY_PASSWORD 语法已弃用,建议改用 IDENTIFIED_WITH
  • 密码哈希函数OLD_PASSWORD() 函数已弃用,改用 PASSWORD()
查询缓存
  • 系统变量SQL_CACHESQL_NO_CACHE 及相关变量已弃用。
  • 性能架构表COUNT_WRITE_DELAYED 等相关列已删除。
服务器选项和系统变量
  • InnoDB 选项--innodb 及相关选项已弃用,改用 InnoDB 系统变量。
  • 全局变量sql_log_bin 全局变量已弃用,只能使用会话变量。
C API 和客户端选项
  • 选项和函数mysql_shutdown() 函数已弃用,建议直接关闭服务器。
  • 客户端选项--secure-auth--skip-secure-auth 选项已弃用。
实用程序
  • libmysqld:嵌入式服务器库已从 5.7.19 开始弃用,建议使用独立服务器。
其他功能
  • 性能架构表TICK 表已删除,相关信息可通过其他方式获取。
  • 文件符号链接:Windows 上的文件符号链接支持已删除,建议使用 mklink 创建。

3. MySQL 5.7 中删除的功能

密码哈希格式
  • 4.1 之前格式:MySQL 5.7 不再支持 4.1 之前的密码哈希格式,必须升级到新格式。
系统变量和选项
  • innodb_mirrored_log_groups:不再支持镜像日志组,改用其他方法管理多主机环境。
  • thread_concurrency:该系统变量已不再有用。
实用程序
  • mysql热复制:已从官方实用程序中移除,建议使用企业备份功能。
脚本和选项
  • binary-configure.sh:脚本已删除,建议使用其他配置方法。

4. 其他注意事项

  • 升级建议:使用 MySQL 5.7.23 及以上版本以确保与 MySQL 8.0 的兼容性。
  • 迁移路径:对于依赖已弃用的功能的应用程序,应尽快进行升级和迁移。

以上内容全面涵盖了 MySQL 5.7 的新功能、弃用和删除功能,供开发人员和数据库管理员参考。

转载地址:http://knbfk.baihongyu.com/

你可能感兴趣的文章
Mysql 脏页 脏读 脏数据
查看>>
mysql 自增id和UUID做主键性能分析,及最优方案
查看>>
Mysql 自定义函数
查看>>
mysql 行转列 列转行
查看>>
Mysql 表分区
查看>>
mysql 表的操作
查看>>
mysql 视图,视图更新删除
查看>>
MySQL 触发器
查看>>
mysql 让所有IP访问数据库
查看>>
mysql 记录的增删改查
查看>>
MySQL 设置数据库的隔离级别
查看>>
MySQL 证明为什么用limit时,offset很大会影响性能
查看>>
Mysql 语句操作索引SQL语句
查看>>
MySQL 误操作后数据恢复(update,delete忘加where条件)
查看>>
MySQL 调优/优化的 101 个建议!
查看>>
mysql 转义字符用法_MySql 转义字符的使用说明
查看>>
mysql 输入密码秒退
查看>>
mysql 递归查找父节点_MySQL递归查询树状表的子节点、父节点具体实现
查看>>
mysql 里对root及普通用户赋权及更改密码的一些命令
查看>>
Mysql 重置自增列的开始序号
查看>>