当前位置:首页 > 技术分析 > 正文内容

是时候升级MySQL了-MySQL8新特性一览

ruisui885个月前 (02-08)技术分析24

MySQL8已经发布了较长一段时间了,但是大多数企业还在使用着5.x的版本,其中原因一来是因为5.x版本功能稳定,升级也需要一定的成本,另外一方面很多开发者对于MySQL8新版本的特性还不够了解,本文就一起来看看MySQL8的新特性。

1、数据字典

MySQL8集成了一个事务型的数据字典,用于存储数据库对象信息。在MySQL8的版本之前,数据字典被存储在元数据文件和非事务型的表中,对应的有.frm和.opt这些文件,而在MySQL8中这些文件都被删除了。

2、原子DDL

原子DDL语句将数据字典更新、存储引擎操作和与DDL操作相关联的二进制日志的写入组合成一个单独的原子事务。

3、升级过程

MySQL8以前,在安装了一个新版本的MySQL以后需要DBA手工调用mysql_upgrade升级mysql数据库、sys数据库等数据库中的系统表,之后MySQL Server会在下次启动的时候自动更新数据字典表。

MySQL8.0.16以后,在安装新版本以后将会在下次启动时自动更新数据字典表,不再依赖于DBA手工调用mysql_upgrade。

4、安全和账号管理

  • mysql数据库中的授权表的存储引擎从MyISAM修改为了InnoDB,这意味着其从不支持事务变成了支持事务。在之前的版本,多个用户授权操作可能有一些成功,有一些失败,但是却无法明确哪个成功,哪个失败。
    在使用了InnoDB存储引擎以后,整体操作是事务性质的,要么成功并且写入binlog,要么失败全部回滚。
  • 提供了一个新的认证插件caching_sha2_password,它实现了SHA-256密码哈希,并且使用了缓存减少了延迟。它还支持众多的传输协议,并且不需要针对OpenSSL进行链接以实现基于RSA密钥对密码交换功能。
    caching_sha2_password和sha256_password插件的安全性比mysql_native_password插件更好,并且caching_sha2_password的性能比sha256_password更好,因此目前更加建议使用caching_sha2_password,并且最新版本的默认认证插件也是caching_sha2_password,而不再是mysql_native_password。
  • MySQL8企业版SASL LDAP认证插件支持Linux下的GSSAPI/Kerberos认证。Linux下应用使用Microsoft Active Directory实现LDAP,默认支持Kerberos。
  • MySQL8支持角色配置,代表一系列权限的集合

5、字符集

默认的字符集由latin1变成了utf8mb4。

6、参数修改持久化

MySQL 8版本支持在线修改全局参数并持久化,设置时通过persist关键字,其实质是将配置参数放置在了一个新生成的mysqld-auto.cnf配置文件中,一旦MySQL重启会去读取这个配置文件,这个配置文件的优先级高于默认的配置文件,从而实现参数修改的持久化,如:

set persist max_connections=12000;

7、JSON增强

MySQL8大幅增加了对于JSON的支持,新增了JSON_EXTRACT()、JSON_ARRAYAGG()和JSON_OBJECTAGG()等函数,这些函数支持JSON的分组和聚合,支持从JSON中提取数据,非常的方便。

8、数据类型支持

MySQL8提供了对于GIS的支持,这包括了空间参考系统(SRS)的元数据支持,以及SRS感知空间数据类型,还支持在空间数据类型上创建空间索引。

9、性能

经过验证,MySQL8具有更好的读写工作负载能力,与MySQL 5.7相比,在高负载上性能提高了2倍以上。特别值得一提的是在MySQL8中引入了资源组的功能,通过将用户线程映射到CPU,为用户提供了针对特定硬件上的特定工作负载进行优化的能力。

MySQL8是Oracle下了大力气的产品,功能十分丰富,对于MySQL也有了很大的改进,除了以上提出的还有很多小点的新功能或优化,其更新的速度比较快,一般1-3个月就会发布一个新版本,可以看出Oracle对于十分看重,并且社区的评价也非常不错,值得升级一试。

喜欢的话,别忘记关注点赞哦!

扫描二维码推送至手机访问。

版权声明:本文由ruisui88发布,如需转载请注明出处。

本文链接:http://www.ruisui88.com/post/1804.html

标签: json_extract
分享给朋友:

“是时候升级MySQL了-MySQL8新特性一览” 的相关文章

祸害阿里云宕机3小时的IO HANG究竟是什么?

本文来自微信公号“CSDN”(ID:CSDNnews),作者 | 王知无, 责编| 郭 芮。2019年3月3日凌晨,微博炸锅,有网友反映说阿里云疑似出现宕机,华北很多互联网公司受到暴击伤害,APP、网站全部瘫痪,我自己的朋友圈和微信群里也有好友反馈,刚刚从被窝被叫起来去修Bug,结果发现服务器登不上...

JavaScript数组操作:掌握常用方法,提升开发效率

JavaScript数组操作:从增删改查到高级应用本文深入解析JavaScript中常用的数组方法,包括push、unshift、pop、shift、map、filter、reverse、at 和 slice。通过详细的例子和应用场景,帮助开发者快速掌握这些方法,提升代码效率和可读性。开篇点题作为J...

22《Vue 入门教程》VueRouter 路由嵌套

1. 前言本小节我们介绍如何嵌套使用 VueRouter。嵌套路由在日常的开发中非常常见,如何定义和使用嵌套路由是本节的重点。同学们在学完本节课程之后需要自己多尝试配置路由。2. 配置嵌套路由实际项目中的应用界面,通常由多层嵌套的组件组合而成。同样地,URL 中各段动态路径也按某种结构对应嵌套的各层...

TDesign企业级开源设计系统越发成熟稳定,支持 Vue3 / 小程序

TDesing 发展越来越好了,出了好几套组件库,很成熟稳定了,新项目完全可以考虑使用。早在2021年,腾讯的 TDesing 刚发布不久,我就写了一篇简短的文章来介绍,当时主要关注的是 TDesign 的 Vue 组件库和用来搭建 admin 后台系统的实用性。虽然当时看起来不错,但还处于测试版,...

tcp协议的六个标识位

6个标识位:1.URG 紧急指针,告诉接收TCP模块紧要指针域指着紧要数据。2.ACK 置1时表示确认号(为合法,为0的时候表示数据段不包含确认信息,确认号被忽略。3.PSH 置1时请求的数据段在接收方得到后就可直接送到应用程序,而不必等到缓冲区满时才传送。4.RST 置1时重建连接。如果接收到RS...

使用 Vue 脚手架,为什么要学 webpack?(一)

先问大家一个很简单的问题:vue init webpack prjectName 与 vue create projectName 有什么区别呢?它们是 Vue-cli 2 和 Vue-cli3 创建项目的两个命令,之所以两个命令不同,根本原因是 Vue-cli2 是基于webpack 3,而 vu...