MySQL8.0新特性概览

1.事务性数据字典,完全脱离了MyISAM存储引擎
真正将数据字典放到了InnoDB中的一些表中,从此不再需要FRM、TRG、PAR文件啦!Information Schema现在以数据字典表的一个视图出现。原则上可以完全不需要MyISAM数据表类型了,所有的系统表都可以放到InnoDB之中。
2.SQL角色
角色是一系列权限的集合。可以创建角色,给某个用户授予和去除角色。这对于权限管理很方便。
utf8mb4字符集将成为默认字符集,并支持Unicode 9
默认字符集将从 latin1 改为 utf8mb4,默认定序collation将从latin1_swedish_ci 改为 utf8mb4_800_ci_ai。
3.不可见索引
可以将一些索引设置为不可见,这样SQL优化器就不会用到它,但是它会继续在后台保持更新。当有需要时,可以随时恢复可见。
对二进制数据可以进行位操作
不仅仅可以对 BIGINT进行位操作,从8.0开始也支持对 [VAR]BINARY/[TINY|MEDIUM|LONG]BLOB进行位操作了。
4.改进了对IPv6和UUID的操作
INET6_ATON() 和 INET6_NTOA() 现在可以进行位操作了,因为INET6_ATON()现在返回的是VARBINARY(16) 数据类型(128位)。改进了UUID操作,引入了三个新的函数 UUID_TO_BIN(), BIN_TO_UUID()和 IS_UUID() 。MySQL并没有特殊的IPv6和UUID数据类型,而是以VARBINARY(16) 数据类型保存的。
5.持续性的全局变量
可以用 SET PERSIST 来设置持久性的全局变量,即便服务器重启也会保持下来。
性能数据库Performance Schema的改进
比如对性能数据库增加了100多个索引,可以检索更快。
6.重构SQL分析器
持续不断的逐步改进SQL分析器。旧的分析器由于其语法复杂性和自顶向下的分析方式从而有严重的限制,导致难以维护和扩展。
7.成本模型
InnoDB缓冲区现在可以估算主内存缓存区中的有多少表和索引,这可以让优化器选择访问方式时知道数据是否可以存储在内存中还是必须存储到磁盘上。
8.直方图Histograms
通过使用直方图,用户或DBA可以对数据分布进行统计,这可以用于查询优化以寻找优化的查询方案。
9.改进扫描性能
改进了InnoDB范围查询的性能,可提升全表查询和范围查询 5-20%的性能。
10.重构BLOB
重构BLOB加速了片段读取/更新操作,可以加速JSON数据的操作。
11.持久化自增值
InnoDB会持久化保持自增序列的最大值到redo日志中。这个改进还修复了一个非常老的199号bug。
12.临时表
取消对压缩临时表的支持,并存储临时表的元数据到内存中。


从MySQL8.0以后,我们可以发现MySQL做的越来越像Oracle了。
文章题目:MySQL8.0新特性概览
文章转载:http://ybzwz.com/article/jdsjpe.html