所在的位置: mysql >> mysql发展 >> MySQL8新特性介绍CSDN

MySQL8新特性介绍CSDN

原文:What’snewinMySQL8.0

作者:SerdarYegulalp

译者:Jackyrong

本文提要:广受欢迎的开源数据库MySQL8中,包括了众多新特性,其中包括对Unicode更好的支持、对JSON格式和文档的处理,以及一直以来呼吁增加的象window函数的功能等。

MySQL是众多网站技术栈中的标准配置,是广受欢迎的开源数据库,已经推出了8.0的第一个候选发行版本。

MySQL8.0的新特性包括:

对Unicode9.0的开箱即用的完整支持

支持窗口函数和递归SQL语法,这在以往是不可能或者很难才能编写这样的查询语句

对原生JSON数据和文档存储功能的增强支持

MySQL8.0的发布,跳过了多个版本号(从5.5开始),由于6.0修改和7.0是用来保留做MySQL的集群版本,因此采用了8.0的版本号。

MySQL8.0的预期发布日期

根据MySQL的策略“一个新的版本发布的周期是18-24个月”,MySQL并没有承诺MySQL8.0的发布日期。最近一次MySQL5.7的发布是年的10月21日,所以MySQL8.0的正式版本发行可能在年10月。

MySQL8.0标准化Unicode之路

默认支持Unicode可以说是MySql8.0最大的改变之一。长期以来,MySQL一直存在着对Unicode的很多没能解决的问题。所以,对MySQL8.0来说,一个长期的计划是尽可能多地修复那些持续的Unicode问题

MySQL8.0不再将latin1设为默认的编码,以防止新用户使用了这个有问题的遗留选项。现在推荐utf8mb4作为MySQL8.0的默认字符集设置,其目的是比现在不在推荐的utf8mb3字符设置更快,同时也支持更灵活的排序并区分大小写。

增强的Unicode不但支持非西方的字符集合也支持目前日益发展的emoji表情。

MySQL8.0支持窗口函数

很多SQL语言标准的实现(如Oracle,译者注)都支持窗口函数,它是能实现跨多行聚合计算的功能,并仍然允许从查询中访问到单独的行。在以前的MySQL版本中,不使用窗口函数是可以实现的,但是很麻烦而且速度慢。为了克服这个缺陷,MySQL8.0通过标准的SQL关键字OVER来实现窗口函数的功能,有点象其竞争对手PostgreSQL的实现方法。

同样另一个功能是递归公用表表达式,它能让你针对子查询进行递归操作,而无需使用游标或其他有损性能的解决方法。

MySQL8.0更好支持文档型数据库和JSON

MySQL5.7支持JSON,这让MySQL能使用原生JSON和NoSQL数据库竞争。MySQL8.0扩展了对JSON的支持,并且性能更加好,增加了从JSON查询中返回范围的功能(就象SQL语句”topn”的功能),也增加了新的聚合函数能让在同一个查询语句中,能结合MySQL原生的结构化数据和JSON的半结构化数据。

与JSON相关的另一项改进包括MySQL的文档存储。对MySQL文档存储的读取和写入在事务上是一致的,允许对JSON数据进行更改的回滚操作。文档数据以开放的、用于地理空间数据的GeoJSON格式存储,并且能被索引,因此可以进行领接方式的搜索。

MySQL8.0的其他关键特性

其他MySQL8.0计划更新的特性包括:

在锁定行方面增加了更多选项,如SKIPLOCKED和NOWAIT两个选项。其中,

SKIPLOCKED允许在操作中不锁定那些需要忽略的行;NOWAIT则在遇到行的锁定的时候马上抛出错误。

MySQL能根据可用内存的总量去伸缩扩展,以更好利用虚拟机的部署。

新增“隐藏索引”的特性,这样索引可以在查询优化器中变为不可见。索引在标记为不可用后,和表的数据更改同步,但是优化器不会使用它们。对于使用隐藏索引的建议,是当不决定某个索引是否需要保留的时候,可以使用。

哪里下载MySQL8.0

现在你可以下载MySQL8.0的Windows,MacOS,Linux的若干版本,FreeBSD和Solaris;也可以下载源代码。可以在


转载请注明:http://www.aierlanlan.com/tzrz/5388.html