前言
MySQL 8 是mysql的最新版本,它带来了许多改进和新特性,主要新增特性如下:
- 公用表表达式(CTE) : CTE 可以简化复杂的 JOIN 查询和子查询,并支持递归查询,提高 SQL 的可读性和执行性能。
- 默认字符集变更 : 默认字符集由 latin1 变为 utf8mb4,utf8 也默认指向 utf8mb4,支持更多的 Unicode 字符。
- 克隆插件 : 提供了从一个实例克隆出另一个实例的功能,有助于快速创建 MySQL 实例和搭建复制环境。
- 资源组 : 允许调控线程优先级和绑定 CPU 核,需要相应的权限和系统支持。
- 角色管理 : 角色可以看作是权限的集合,简化了权限管理。
- 参数修改持久化 : 支持在线修改全局参数并持久化到配置文件中。
- InnoDB 锁等待改进 : 新增 NOWAIT 和 SKIP LOCKED 语法,允许跳过锁等待。
- GROUP BY 排序行为变更 : 为了兼容 SQL 标准,不再隐式排序。
- 自适应参数 : 自动调整参数以适应服务器的硬件配置。
- 窗口函数 : 从 MySQL 8.0 开始,引入了窗口函数,提供了新的查询方式。
- 性能提升 : 官方表示 MySQL 8.0 的性能是 MySQL 5.7 的两倍,特别是在读/写工作负载、IO 密集型工作负载和高竞争工作负载方面。
- JSON 扩展 : 提供了更多的 JSON 功能,包括 JSON 表函数和聚合函数。
- GIS 地理支持 : 增强了对地理信息系统的支持。
- DDL 原子性和崩溃安全 : 改进了数据定义语言的可靠性。
- 性能架构改进 : 提升了性能架构的可观察性。
- 安全增强 : 包括 OpenSSL 改进、新的默认身份验证、SQL 角色等。
- 错误日志改进 : 错误日志系统进行了重大改进,提供了更多的灵活性和自定义选项。
- 可管理性增强 : 包括撤销表空间管理、全局变量持久化等。
- 远程管理 : 通过 SQL RESTART 命令等实现远程管理。
博主发现自己的mysql版本还停留在5.7,从mysql8导出的数据居然无法导入mysql5.7,于是将mysql版本升级到了8.0,如下是博主的安装记录,供各位同学参考