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更新了什么?的详细内容,更多请关注CTO智库其它相关文章!