本文提要:广受欢迎的开源数据库MySQL 8中,包括了众多新特性,其中包括对Unicode更好的支持、对JSON格式和文档的处理,以及一直以来呼吁增加的象window函数的功能等。
MySQL是众多网站技术栈中的标准配置,是广受欢迎的开源数据库,已经推出了8.0的第一个候选发行版本。
MySQL 8.0的发布,跳过了多个版本号(从5.5开始),由于6.0修改和7.0是用来保留做MySQL的集群版本,因此采用了8.0的版本号。
根据MySQL的策略“一个新的【一般】版本发布的周期是18-24个月”, MySQL并没有承诺MySQL 8.0的发布日期。最近一次MySQL 5.7的发布是2015年的10月21日,所以MySQL 8.0的正式版本发行可能在2017年10月。
默认支持Unicode可以说是MySql 8.0最大的改变之一。 长期以来,MySQL一直存在着对Unicode的很多没能解决的问题。 所以,对MySQL 8.0来说,一个长期的计划是尽可能多地修复那些持续的Unicode问题。
MySQL 8.0不再将latin1设为默认的编码,以防止新用户使用了这个有问题的遗留选项。现在推荐utf8mb4作为MySQL 8.0的默认字符集设置,其目的是比现在不在推荐的utf8mb3字符设置更快,同时也支持更灵活的排序并区分大小写。
增强的Unicode不但支持非西方的字符集合也支持目前日益发展的emoji表情。
很多SQL语言标准的实现(如Oracle,译者注)都支持窗口函数,它是能实现跨多行聚合计算的功能,并仍然允许从查询中访问到单独的行。在以前的MySQL版本中,不使用窗口函数是可以实现的,但是很麻烦而且速度慢。为了克服这个缺陷,MySQL 8.0通过标准的SQL关键字OVER来实现窗口函数的功能,有点象其竞争对手PostgreSQL的实现方法。
同样另一个功能是递归公用表表达式,它能让你针对子查询进行递归操作,而无需使用游标或其他有损性能的解决方法。
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的Windows,MacOS,Linux的若干版本,FreeBSD和Solaris;也可以下载源代码。可以在官网的下载页面中,访问其中的开发者候选版本去下载它们。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。
原创声明:本文系作者授权腾讯云开发者社区发表,未经许可,不得转载。
如有侵权,请联系 cloudcommunity@tencent.com 删除。