MySQL被Sun收购后,搞了个过渡的6.0版本,没多久就下线了(有一次居然听说有人在线上用6.0版本,我惊得下巴都掉了)。被Oracle收购后,终于迎来了像样的5.6版本,之后就是5.7、8.0版本。这么看来,Sun的衰亡不无道理。
P.S,上面说了6.0版本号已被用过,7.x系列版本专用于NDB Cluster,因而新版本号从8.0开始。
刚被Oracle收购时,大家恐慌的不行,貌似还甚至搞了个联合签名请愿活动来着,可惜真的是应了那句话“天下大势,浩浩汤汤,顺之者昌,逆之者亡”。
创始人Monty又折腾了MariaDB,可惜也是不温不火的。MySQL 8.0发布后,MariaDB宣布不打算继续合并InnoDB引擎,这下就更尴尬了,以后还能愉快的玩耍了吗?这两年Monty老先生还时不时来中国露个脸,但似乎有那么一丢丢变味了。
闲话少说,一起来看看8.0都有哪些真香特性吧。
1. 为什么是8.0
作为迄今为止,地表最强的MySQL版本,8.0被寄予厚望。
虽然在很多人眼里,MySQL 8.0无非是有个"好爹",很多新特性是照着Oracle"抄"的。但在我看来,Oracle作为先驱前辈,已经证明了这些技术的优秀之处,有什么理由不借鉴呢,难道非要折腾出一些只为了能自嗨的莫名其妙的特性才叫牛逼,比如只能用触发器变相实现的表分区功能的某DB?
再说了,即便有个”好爹“,就一定能做好吗,国民老公不也被限制消费了?
MySQL 8.0无论在功能还是性能(整体上),都是目前最好的MySQL版本。以往因为某些特性不支持,导致需要在业务代码、逻辑上做一些妥协,甚至增加使用第三方解决方案(例如NOSQL)。
我相信从8.0开始,以后这种情况会越来越少的,MySQL会越来越好,绝大多数和数据库相关的业务需求,都能在MySQL中完成。当然了,我也相信它不会为了哗众取宠,堆砌一些无谓的功能,变成另一个“最好用”的数据库。
2. MySQL 8.0哪里香
截止本文发稿,MySQL最新版本是8.0.19。下面是站在我个人角度上,认为最香的几个特性。
2.1 性能优化相关
无疑是hash join。相信DBA们被弱鸡开发坑怕了,有了hash join再也不那么怕没索引的多表join了。还有一个,anti join。hash join刚出来时,我做了个简单的测试,当时也发了过朋友圈:
MySQL 8.0来了,大势所趋,逆之者亡
MySQL 8.0来了,大势所趋,逆之者亡
MySQL 8.0来了,大势所趋,逆之者亡
快速加新列。做过游戏DBA的我简直热泪盈眶,想想以前早起做变更的苦逼岁月(╥╯^╰╥)
直方图。没有索引,不想建索引,索引不准确?不怕,还有直方图兜底。
函数索引、表达式索引,开发者们该爱死这两个功能了吧。
消除了全局的buffer pool mutex。话说这个特性Percona好像在5.5版本就有了,官方团队在这块的动作慢的有点厉害啊。
倒序索引。任你正序排,倒序排,还是混合顺序排,啥姿势都能满足,em...
不可见索引。删个索引,想删又不太敢动手,怎么破?不可见索引来救命。改为不可见后,观察一阵子,确认没影响了再放心删除吧。
引入WRITESET模式,大大提高并行复制效率,主从复制延迟进一步缩小。
针对JSON数据类型,增加Multi-valued indexes,更方便JSON的搜索了。
HINT语法增强,更方便在执行查询时动态设定选项,针对不同SQL采用不同策略。
有个新的TempTable引擎,比原来的tmptable强不少。
其他优化。
2.2 管理、复制、安全方面的功能提升
正式推出Group Relication。很好,在稳步朝着高性能、高可用方向推进,先实现读可扩展,再实现写可扩展。期待不远的将来再实现分布式Sharding,到那时候,现在市面上那些吹得不可一世的NEWSQL们该哑火了,这两年有点憋屈的说。
Clone Plugin以及ReplicaSet特性,配合MySQL Shell,想要部署一个新的slave实例,或者是InnoDB Cluster节点,就方便很多了。
sqlrequireprimary_key选项设定强制要求每个表都得有个主键。在主从环境中,相信太多人吃过没主键的亏了。当然了,我并没有,嘿。
实例重启后的自增ID持久化,小增强却解决了业务上的逻辑大麻烦。
extra admin port,管理员可以给自己开后门了。
在线修改完配置参数后,SET PERSIST语法实现持久化,不用再手工修改一次my.cnf了。
锁增强,增加SKIP LOCK、NOWAIT LOCK锁模式,以及BACKUP LOCk。
窗口函数、CTE。做统计分析同学的福音。
其他提升。
更多的特性,可以访问下面几个资料查看。
MySQL 8.0新特性
MySQL 8.0相对于5.7的复制改进
从MySQL5.5到MySQL8.0子查询进化之路
3. 看完了还不想上车?
细心的读者,或许能发现在官方文档第一章"Chapter 1 General Information"里头,有这么一段话:
Support for setting user variables in statements other than
SET was deprecated in MySQL 8.0.13. This functionality is
subject to removal in MySQL 9.0.
嗯,你没看错,是的,下一个就是9.0版本,按照经验,2020年也应该要发布了。
再吼一下,MySQL 8.0来了,高铁般的速度,再不上车您就直接用9.0吧。
分享到:
相关推荐
MySQL Cluster is currently not supported in MySQL 8.0. For information about MySQL Cluster, please see MySQL NDB Cluster 7.5 and NDB Cluster 7.6. MySQL 8.0 features. This manual describes features...
完整版 MySQL8.0从入门到精通 MySQL数据库教程 第01章 初始MySQL(共19页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第02章 MySQL的安装与配置(共14页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库...
完整版 MySQL8.0从入门到精通 MySQL数据库教程 第01章 初始MySQL(共19页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第02章 MySQL的安装与配置(共14页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库...
MySQL Cluster is currently not supported in MySQL 8.0. For information about MySQL Cluster, please see MySQL NDB Cluster 7.5 and NDB Cluster 7.6. MySQL 8.0 features. This manual describes features...
MySQL 8.0 Reference Manual MySQL 8.0 Reference Manual
别找了,你要的MySQL 8.0的新特性已经整理好了,安心准备面试吧!!!!
MySQL 8.0参考手册 Including MySQL NDB Cluster 8.0
这是 MySQL 8.0 参考手册中的 MySQL 教程 本章通过展⽰如何使⽤mysql客⼾端程序创建和使用简单的数据库来提供 MySQL 的教程介绍。 mysql (有时称为“终端监视器”或简称“监视器”)是⼀个交互式程序,使您能够连接...
mysql8.0 附带一键安装脚本
MySQL 8.0 OCP应试必备指南
MySQL8.0参考手册.pdf
mysql8.0审计插件Mcafee安装详解
mysql8.0官方文档离线版
mysql8.0驱动包,支持MySQL 5.5, 5.6, 5.7,8.0
打开百度网盘,免费下载不要钱 链接:https://pan.baidu.com/s/1loAoyceuxnOLVmsW41o72g?pwd=mnzg 提取码:mnzg
适合linux无网环境下安装MySQL8.0版本
MySQL8.0认证 ocp(175题)
Mysql8.0-linux安装指导
MySQL 教程 MySQL 是最流行的关系型数据库管理系统,在 WEB 应用方面 MySQL 是最好的 RDBMS(Relational Database Management System:关系数据库 MySQL8.0数据库的一般配置 Linux环境的配置文件
MySQL8.0新特性MySQL8.0新特性