MySQL 8的关键新特性

MySQL的第八个版本蓄势待发,并有望于2018年发布。在MySQL 5.7.9的首个通用版本推出后的28个月内,MySQL 8发布了从8.0.0到8.0.4这五个候选版本。这些发布候选仅针对开发使用,而不应该生产系统中使用。因为这些候选版并不支持版本升级,用户可能会碰上候选版与一般可用(GA)版间存在数据格式不兼容的问题。

用户首先可能注意到,在版本号上出现了一个跳跃。这是因为MySQL丢弃了版本6,而将版本7用于企业产品线。

窗口函数(Window Function)是MySQL 8中最令人感兴趣的特性。其它一些数据库引擎中业已实现该特性。窗口函数对一系列查询行执行聚合运算,并可对每一行聚合周边的数据而生成结果。

类似于窗函数,递归CTE(Common Table Expressions)支持用户在不使用游标的情况下,执行引用了自身的子查询。该幻灯片对此特性作了详细的阐述。

MySQL 8的默认字符集支持也从“Latin1”转变为“utf8mb4”。utf8mb4支持每个字符使用多至四个字节。它是很多应用的首选字符集,因为它支持大多数扩展字符序(例如日语所用的utf8mb4_ja_0900_as_cs等)以及emoji字符。在存储方面,MySQL 8的默认存储引擎将使用InnoDB。

隐藏索引(Invisible indexes)支持DBA将某个索引设为不被查询优化器所考虑。该特性用于测试指定的索引对查询性能的影响情况,并可在对用户实际启用该索引前,恢复索引在查询优化中的可见性。MySQL 8还大幅改进了对JSON的支持,添加了基于路径查询参数从JSON字段中抽取数据的JSON_EXTRACT()函数,以及用于将数据分别组合到JSON数组和对象中的JSON_ARRAYAGG()JSON_OBJECTAGG()聚合函数。

MySQL 8提供了灵活角色支持,支持CREATE、DROP和GRANT角色,甚至可将一个角色赋予另一个角色,并可限制MySQL 8中可用的角色对每个会话或主机的可用性。用户也可以通过调用ROLES_GRAPHML()函数,实现角色的GraphML可视化。

MySQL 8曾计划于2017年10月发布,但是8.0.4 RC直至2018年1月23日才发布。看来在正式推出GA版之前,至少还需要发布两个候选版。

查看英文原文: Best New Features of MySQL 8

相关推荐