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

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

ruisui883个月前 (02-08)技术分析16

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新特性一览” 的相关文章

面试官:聊聊你知道的Vue与React的区别

最近面到很多大公司的时候,小编都会碰到一个很尴尬的问题,很多大公司的技术栈都是React,但是小编学的是Vue,其实从本质上来说两者都是比较优秀的前端框架,所以有些面试官会问到Vue和React的区别。小编认真整理了一些自己所知道的Vue和React的区别,给大家分享分享。1. 模板语法 vs JS...

Vue.js 组件通信的 3 大妙招

在 Vue.js 中,组件化是其核心概念之一,允许你将复杂的界面拆分成多个独立的、可复用的组件。在构建大型应用时,如何高效地在组件之间传递数据和触发事件是非常重要的。Vue.js 提供了多种方式来处理组件间的通信,下面是最常用的 3 种方式:1.父子组件通信:通过 Props 和 Events在 V...

Gitlab概览

Gitlab是开源的基于Git的仓库管理系统,也可以管理软件开发的整个生命周期,是项目管理和代码托管平台,支撑着整个DevOps的生命周期。Gitlab很容易选为GitHub,作为公司私有库管理的工具。我们可以用Gitlab Workflow来协同整个团队的软件开发管理过程。软件开发阶段Gitlab...

最快清除数组空值?分享 1 段优质 JS 代码片段!

本内容首发于工粽号:程序员大澈,每日分享一段优质代码片段,欢迎关注和投稿!大家好,我是大澈!本文约 600+ 字,整篇阅读约需 1 分钟。今天分享一段优质 JS 代码片段,用最简洁的代码清除了数组中的空值。老规矩,先阅读代码片段并思考,再看代码解析再思考,最后评论区留下你的见解!const arr...

一起学Vue:路由(vue-router)

前言学习vue-router就要先了解路由是什么?前端路由的实现原理?vue-router如何使用?等等这些问题,就是本篇要探讨的主要问题。vue-router是什么路由是什么?大概有两种说法:从路由的用途上来解释路由就是指随着浏览器地址栏的变化,展示给用户的页面也不相同。从路由的实现原理上来解释路...

VUE-router

七.Vue-router1、什么是vue-routervue-router是vue.js官方路由管理器。vue的单页应用是基于路由和组件的,路由用于设定访问路径,并将路径和组件映射起来。传统页面切换是用超链接a标签进行切换。但vue里是用路由,因为我们用Vue做的都是单页应用,就相当于只有一个主的i...