MySQL 8 新特性介绍

本文提要:广受欢迎的开源数据库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;也可以下载源代码。可以在官网的下载页面中,访问其中的开发者候选版本去下载它们。

原创声明,本文系作者授权云+社区发表,未经许可,不得转载。

如有侵权,请联系 yunjia_community@tencent.com 删除。

编辑于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏互联网高可用架构

初识分库分表框架DBSPLIT

1504
来自专栏乐沙弥的世界

MongoDB执行计划获取(db.collection.explain())

1143
来自专栏皮皮之路

【MySQL】通过Binary Log简单实现数据回滚(一)

39211
来自专栏皮皮之路

【MySQL】通过Binary Log简单实现数据回滚(一)

2166
来自专栏Bingo的深度学习杂货店

PHP 笔试 + 面试题

本章主要介绍常见的 PHP 笔试 + 面试题,包括: ---- 基础及程序题 数据库技术题 综合技术题 项目及设计题 ---- 基础及程序题 [1] 写一...

8754
来自专栏程序员的SOD蜜

EF+MySQL乐观锁控制电商并发下单扣减库存,在高并发下的问题

下订单减库存的方式 现在,连农村的大姐都会用手机上淘宝购物了,相信电商对大家已经非常熟悉了,如果熟悉电商开发的同学,就知道在买家下单购买商品的时候,是需要扣减库...

5868
来自专栏智能大石头

充血模型的ORM能做什么?——ORM组件XCode(十八般武艺)

ORM组件XCode(十八般武艺) 之前,XCode总是若隐若现,耐性好的同学想知道它还有啥特点,沉不住气的则认为不过是CURD耳! XCode开发模式是灵魂,...

1889
来自专栏大内老A

在Entity Framework中使用存储过程(一):实现存储过程的自动映射

之前给自己放了一个比较长的假期,在这期间基本上没怎么来园子逛。很多朋友的留言也没有一一回复,在这里先向大家道个歉。最近一段时间的工作任务是如何将ADO.NET ...

3065
来自专栏c#开发者

Oracle9i第2版中的UNT_FILE提高了文件输入/输出(I/O)功能。

技术 PL/SQL 提高文件操作功能 作者:Steven Feuerstein Oracle9i第2版中的UNT_FILE提高了文件输入/输出(I/O)功...

3314
来自专栏程序猿

SQL注入与XSS漏洞

所谓SQL注入,就是通过把SQL命令插入到Web表单递交或输入域名或页面请求 的查询字符串,最终达到欺骗服务器执行恶意的SQL命令,比如先前的很多影视网 站泄...

4755

扫码关注云+社区