MySQL 8.0 是一个重要的版本更新,它引入了许多新的特性和改进,使得 MySQL 更加高效、强大和安全。以下是一些 MySQL 8.0 的新特性:
数据字典:MySQL 8.0 摒弃了 Server Layer 定义的 FRM 文件和其他非事务表,使用了一组 InnoDB 表来保存数据字典,支持事务特性。
Atomic DDL:在 Data Dictionary 支持事务特性的基础上,8.0 增加了一个 DDL log 字典表,用来协调在 DDL 过程中对数据字典、文件系统和事务系统的修改,做到原子性。
安全性:从 8.0 开始,支持 role 对权限进行便捷管理,以及新增多个系统权限,分别对应新 增了 ROLE_EDGES、GLOBAL_GRANTS 两个系统表;mysql schema 下的涉及权限和用户相关的表 更改成 InnoDB 引擎,支持事务特性,保证了账号管理语句的原子性。
Auto increment 持久化:在 MySQL 8.0 中,Auto increment 列的值可以持久化保存,即使在系统崩溃或重启后也能保持一致。
死锁检测:MySQL 8.0 增强了死锁检测机制,可以更快速地检测到数据库死锁情况,并采取相应的措施解决死锁问题。
性能优化:MySQL 8.0 在性能方面进行了大量的优化,包括查询优化、索引优化、线程优化等,使得数据库的整体性能得到显著提升。
新字符集:MySQL 8.0 默认字符集改为 utf8mb4,避免了在数据库设计时忘记修改默认编码而出现的乱码问题。
DDL原子性:InnoDB表的DDL操作支持事务完整性,即DDL操作要么成功要么回滚。DDL操作回滚日志写入到data dictionary数据字典mysql.innodb_ddl_log中,用于回滚操作。通过设置参数,可将DDL操作日志打印输出到MySQL错误日志中。
总之,MySQL 8.0 是一个非常强大和全面的数据库管理系统,具有许多新的特性和改进,使得它更加高效、可靠和安全。