原文:What’s new in MySQL 8.0
作者:Serdar Yegulalp
译者:Jackyrong

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

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

MySQL 8.0的新特性包括:

  • 对Unicode 9.0的开箱即用的完整支持
  • 支持窗口函数和递归SQL语法,这在以往是不可能或者很难才能编写这样的查询语句
  • 原生JSON数据和文档存储功能的增强支持MySQL 8.0的发布,跳过了多个版本号(从5.5开始),由于6.0修改和7.0是用来保留做MySQL的集群版本,因此采用了8.0的版本号。

MySQL 8.0的预期发布日期

根据MySQL的策略“一个新的【一般】版本发布的周期是18-24个月”, MySQL并没有承诺MySQL 8.0的发布日期。最近一次MySQL 5.7的发布是2015年的10月21日,所以MySQL 8.0的正式版本发行可能在2017年10月。

MySQL 8.0标准化Unicode之路

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

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

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

MySQL 8.0支持窗口函数

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

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

MySQL 8.0更好支持文档型数据库和JSON

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

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

MySQL 8.0的其他关键特性

其他MySQL 8.0计划更新的特性包括:

  • 在锁定行方面增加了更多选项,如SKIP LOCKED和NOWAIT两个选项。其中,
    SKIP LOCKED允许在操作中不锁定那些需要忽略的行;NOWAIT则在遇到行的锁定的时候马上抛出错误。
  • MySQL能根据可用内存的总量去伸缩扩展,以更好利用虚拟机的部署。
  • 新增“隐藏索引”的特性,这样索引可以在查询优化器中变为不可见。索引在标记为不可用后,和表的数据更改同步,但是优化器不会使用它们。对于使用隐藏索引的建议,是当不决定某个索引是否需要保留的时候,可以使用。

哪里下载MySQL 8.0

现在你可以下载MySQL 8.0的Windows,MacOS,Linux的若干版本,FreeBSD和Solaris;也可以下载源代码。可以在官网的下载页面中,访问其中的开发者候选版本去下载它们。

余下全文(1/3)
分享这篇文章:

请关注我们:

发表评论

电子邮件地址不会被公开。 必填项已用*标注