前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 8.0发布了,来看看针对SQL有哪些新功能?

MySQL 8.0发布了,来看看针对SQL有哪些新功能?

作者头像
ImportSource
发布2018-07-25 17:14:09
6630
发布2018-07-25 17:14:09
举报
文章被收录于专栏:ImportSource

MySQL 8.0 发布了。

据官方称,此次发布意味着MySQL从此兼顾NoSQL和SQL于一身。NoSQL+SQL=MySQL。

8.0发布了很多新的功能,包括SQL方面、JSON方面以及DevOps方面等等。

不过今天主要介绍的是SQL方面有哪些更新。接下来为你列出针对SQL发布的主要新功能。

目录:

  • NOWAIT 和 SKIP LOCKED
  • 降序索引(Descending Indexes)
  • Grouping
  • 默认的CHARSET变为utf8mb4

NOWAIT 和 SKIP LOCKED

MySQL 8.0 新增了NOWAIT和SKIP LOCKED 。在这之前,当一行数据被锁定时(比如是UPDATE或者通过SELECT ... FOR UPDATE),其他的事务将不得不等待,直到锁被释放。

而现实中,在有些情况下,我们可能希望如果某行被锁定了,那么要么立刻返回要么忽略锁定的行,而不是一直等待。

确实有这样的需求。

现在我们就可以使用NOWAIT来实现这个需求,使用了NOWAIT之后,将永远不去等待行锁。而是查询立即返回一个错误而告终。

如果是使用SKIP LOCKED的话,那么也不会去等待行锁释放。而是直接忽略掉被锁住的那一行,根本就不会去读那一行。

降序索引(Descending Indexes)

8.0现在支持降序索引了。现在存储在索引里的值可以按照降序的方式来分布了。然后我们扫描时,从头开始扫描。

在8.0之前,要想建立一个降序索引,就只能先创建一个升序索引(ascending index),然后从尾部开始倒着扫描。

因为从前往后读要比从尾到头读更快,所以这样的新支持(降序索引)改善了查询的性能。

8.0新增的降序索引的另外一个好处就是当使用ORDER BY语句进行ASC或DESC排序的时候就可以直接使用索引来排序,而不像过去那样通过filesort来排序。

GROUPING

MySQL 8.0提供了GROUPING(), GROUPING()函数将“超级聚合行”与普通分组行进行区分。 GROUP BY扩展SQL(如ROLLUP)会生成超级聚合行,其中所有值的集合均由null表示。 使用GROUPING()函数,你可以区分表示超级聚合行中所有值的集合的null与常规行中的NULL。 有点绕,上手操作一下就知道了。

默认的CHARSET变为utf8mb4

另外从MySQL 8.0开始,默认的CHARSET已变为utf8mb4,这是一个支持更多字符的字符集,比如emoji表情等,?。

本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2018-04-20,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 ImportSource 微信公众号,前往查看

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

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 SQL Server
腾讯云数据库 SQL Server (TencentDB for SQL Server)是业界最常用的商用数据库之一,对基于 Windows 架构的应用程序具有完美的支持。TencentDB for SQL Server 拥有微软正版授权,可持续为用户提供最新的功能,避免未授权使用软件的风险。具有即开即用、稳定可靠、安全运行、弹性扩缩等特点。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档