`

MySQL 8.0来了,看看有哪些真香特性

 
阅读更多
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 8.0参考手册 Including MySQL NDB Cluster 8.0

    MySQL 8.0 是一个功能强大且灵活的数据库管理系统,提供了许多高级特性和功能,以满足不同类型的应用程序和业务需求。 MySQL 8.0 的主要特性包括: * 高性能和可扩展性:MySQL 8.0 能够处理大量数据和高并发请求...

    MySQL 8.0 Reference Manual MySQL 8.0 Reference Manual

    该手册详细记录了 MySQL 8.0 的所有特性、配置选项、语法、函数和优化技巧。 MySQL 8.0 的主要特性 MySQL 8.0 是一个功能强大且灵活的关系数据库管理系统,它提供了许多强大的特性,包括: * 高性能的存储引擎...

    docker mysql8.0 镜像资源

    docker mysql8.0 镜像资源

    MySql 8.0,免费安装包下载

    MySQL 8.0是世界上最流行的开源关系型数据库管理系统(RDBMS)的最新版本,以其高效、稳定和灵活的特性而备受赞誉。本资源提供的是MySQL 8.0的免费安装包,允许用户在自己的计算机上搭建和管理MySQL服务器,无论你是...

    MySQL 8.0 Reference Manual 官方参考手册(HTML版)

    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中文参考手册

    MySQL 8.0中文参考手册是一本详尽的指南,为用户提供关于MySQL 8.0版本的全面信息。MySQL是一个广泛使用的开源关系型数据库管理系统(RDBMS),它以其高效、稳定和易于扩展的特性而受到全球开发者的青睐。手册以中文...

    mysql8.0驱动包

    MySQL 8.0驱动包是用于连接MySQL 8.0版本数据库的重要组件,它...总的来说,MySQL 8.0驱动包为开发者提供了高效、安全且灵活的数据库连接方式,使得开发人员能够充分利用MySQL 8.0的新特性,提升应用性能和用户体验。

    MYSQL8.0中文参考手册

    在MySQL 8.0版本中,引入了许多新特性和改进,旨在提升性能、安全性和易用性。 1. **新特性**: - **窗口函数**:MySQL 8.0引入了窗口函数,如RANK(), DENSE_RANK(), ROW_NUMBER(), LAG()和LEAD()等,这使得在复杂...

    MySQL8.0参考手册.pdf

    MySQL 8.0 版本引入了一些新的特性和改进,例如: * 改进的性能优化算法 * 增加了对 JSON 数据类型的支持 * 引入了新的存储引擎,例如 Document Store * 改进了安全机制,例如支持 TLS 1.3 等 4. MySQL 的安装和...

    MySQL8.0认证 ocp(175题)

    MySQL 8.0 OCP(Oracle Certified Professional)认证是针对MySQL数据库管理员的一项专业认证,..."美河学习在线eimhe.com_MySQL8.0认证 ocp(175题) .pdf"这份资料将涵盖以上所有知识点,为备考者提供详尽的复习材料。

    mysql8.0官方文档离线版

    这份“mysql8.0官方文档离线版”包含了关于MySQL 8.0的所有详细信息,包括安装、配置、优化、备份、恢复、安全性、SQL语法、存储引擎、触发器、视图、索引、事务处理等各个方面的内容。以下是对这些知识点的详细阐述...

    MySQL8.0参考文档

    MySQL 8.0 包括多种版本,每个版本都有其特点和限制。用户需要根据自己的需求选择合适的版本。 5. MySQL 8.0 许可信息 MySQL 8.0 的许可信息可以在许可协议中找到,用户需要了解自己所拥有的许可信息,以确保合法...

    MySQL 8.0的新特性简述

    MySQL 8.0 是一个重要的版本升级,引入了一系列新特性以提升数据库的性能、安全性和易用性。以下是对这些新特性的详细说明: 1. **数据字典**: MySQL 8.0 引入了一个事务性的数据字典,用于存储关于数据库对象的...

    完整版 MySQL8.0从入门到精通 MySQL数据库教程 全套PPT课件资源集合 共26个章节 含全部源代码.rar

    完整版 MySQL8.0从入门到精通 MySQL数据库教程 第01章 初始MySQL(共19页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库教程 第02章 MySQL的安装与配置(共14页).ppt 完整版 MySQL8.0从入门到精通 MySQL数据库...

    mysql8.0 新特性 官网文档

    MySQL 8.0提供了许多强大的新特性和改进,这些都有助于提高数据库的性能、安全性和易用性,同时为开发者和运维人员提供了更多的工具和选项,以适应不断变化的技术需求。对于想要部署下一代Web、嵌入式、移动和云/...

    mysql8.0 附带一键安装脚本

    这个“mysql8.0 附带一键安装脚本”可能包含了一个简化 MySQL 8.0 安装过程的自动化脚本,使得在各种操作系统上部署数据库服务器变得更加便捷。 ### MySQL 8.0 的关键特性: 1. **增强的性能**:MySQL 8.0 通过...

    MySQL 8.0 OCP应试必备指南

    MySQL 8.0 OCP应试必备指南 ...MySQL 8.0 OCP考试是对MySQL 8.0版本的企业版特性、安全和性能的考察,需要掌握rpm包安装、企业版特性、安全和性能等知识点,并且需要熟悉考试的流程和题库的特点。

    MySQL 8.0 Reference Manual 官方参考手册

    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安装包下载

    MySQL8.0安装包下载

    mysql8.0.zip

    更强大的地理空间数据支持:MySQL 8.0 在地理空间数据类型和函数方面有了很多改进,并引入了新的地图和地理空间分析功能。 增强的安全性:MySQL 8.0 改进了默认身份验证插件,支持更强的密码加密策略,并提供更多的...

Global site tag (gtag.js) - Google Analytics