Mysql 8.0 新增特性
时间:2022-05-07
本文章向大家介绍Mysql 8.0 新增特性,主要内容包括1. 数据字典、2. 账号权限管理、3. InnoDB 提升、4. JSON 提升、5. Optimizer 优化器、基本概念、基础应用、原理机制和需要注意的事项等,并结合实例形式分析了其使用技巧,希望通过本文能帮助到大家理解应用这部分内容。
1. 数据字典
新增了事务型的数据字典,用来存储数据库对象信息
之前,字典数据是存储在元数据文件和非事务型表中的
2. 账号权限管理
添加了对 “角色” 的支持,角色会对应一套权限,角色可以被添加、删除,角色上的权限也可以进行增删
可以对用户账号添加和删除角色
3. InnoDB 提升
- 完善了对自增计数器(auto-increment counter)的管理,例如设置了计数器的初始值,在服务器重启后也不会受到影响;执行 ROLLBACK 也不会导致计数器的值被重用
- InnoDB memcached 插件支持在一个查询中获取多个key/value对儿,并可以进行范围查询
- 新增了动态配置项
innodb_deadlock_detect
,用来禁用死锁检查,因为在高并发系统中,当大量线程等待同一个锁时,死锁检查会大大拖慢数据库 - 所有的InnoDB临时表会被创建到共享的临时表空间中
-
SELECT ... FOR SHARE
和SELECT ... FOR UPDATE
中支持NOWAIT
、SKIP LOCKED
选项,NOWAIT
的作用是,当被请求的行被锁住时,此语句立即返回;SKIP LOCKED
的作用是从结果集中移除被锁住的行
4. JSON 提升
- 添加内联路径操作符
->>
,相当于对 JSON_EXTRACT() 的结果集调用 JSON_UNQUOTE() - 新增两个JSON聚合函数:
JSON_ARRAYAGG()
、JSON_OBJECTAGG()
(相关文章:体验 Mysql 操作 JSON 文档、体验 MySQL 8.0 JSON聚合函数) - 新加一个工具函数
JSON_PRETTY()
,可以对 JSON 进行格式化,提高可读性 - 在查询中使用
order by
对 JSON 值进行排序时,每个值的sort key
的长度将是可变的,而不再是固定的1K
,有两个好处,1)更高效的使用排序缓冲空间,更多的数据可以在内存中,避免不必要的磁盘访问;2)提高 key 的比较性能
5. Optimizer 优化器
- 支持隐藏索引,优化器可以忽略隐藏索引,但隐藏索引是被正常维护的,作用是用来测试无效索引,删除某索引之前,可以先设置为隐藏索引,确定对系统没有影响后再删除,以防删掉后再次重建(相关文章:MySQL 8.0 新特性 :隐藏索引)
- 支持降序索引,可以对索引定义
DESC
,之前,索引可以被反序扫描,但影响性能,而降序索引就可以高效的完成
- actionbar详解(二)
- actionbar完全解析(一)
- android galley实现画廊效果
- RavenDB:基于Windows/.NET平台的NoSQL数据库
- 神经网络算法交易:波动预测与定制损失函数
- 贝叶斯深度学习:桥接PyMC3和Lasagne构建层次神经网络
- How does it work in Mono's C# compiler?
- Cross-Origin Resource Sharing协议介绍
- 战斗民族开源神器ClickHouse:一款适合于构建量化回测研究系统的高性能列式数据库(二)
- Microsoft StreamInsight 构建物联网
- 利用 Microsoft StreamInsight 控制较大数据流
- HTML Agility Pack 搭配 ScrapySharp,彻底解除Html解析的痛苦
- 看看你是哪种级别的Python程序员(已跪)
- SignalR 在IE中无法工作 - Internet Explorer
- MySQL 教程
- MySQL 安装
- MySQL 管理与配置
- MySQL PHP 语法
- MySQL 连接
- MySQL 创建数据库
- MySQL 删除数据库
- MySQL 选择数据库
- MySQL 数据类型
- MySQL 创建数据表
- MySQL 删除数据表
- MySQL 插入数据
- MySQL 查询数据
- MySQL where 子句
- MySQL UPDATE 查询
- MySQL DELETE 语句
- MySQL LIKE 子句
- mysql order by
- Mysql Join的使用
- MySQL NULL 值处理
- MySQL 正则表达式
- MySQL 事务
- MySQL ALTER命令
- MySQL 索引
- MySQL 临时表
- MySQL 复制表
- 查看MySQL 元数据
- MySQL 序列 AUTO_INCREMENT
- MySQL 处理重复数据
- MySQL 及 SQL 注入
- MySQL 导出数据
- MySQL 导入数据
- MYSQL 函数大全
- MySQL Group By 实例讲解
- MySQL Max()函数实例讲解
- mysql count函数实例
- MYSQL UNION和UNION ALL实例
- MySQL IN 用法
- MySQL between and 实例讲解
- scrapy爬虫框架和selenium的使用:对优惠券推荐网站数据LDA文本挖掘
- 使用R语言进行Metroplis-in-Gibbs采样和MCMC运行分析
- R语言中的马尔科夫机制转换(Markov regime switching)模型
- R语言ARMA-EGARCH模型、集成预测算法对SPX实际波动率进行预测
- nginx快速入门
- R语言中进行期权定价的Heston模型
- 使用R语言随机波动模型SV处理时间序列中的随机波动率
- 20个ES6面试高频问题
- i++和++i傻傻分不清楚?这里给你最清楚的解答
- android APT 使用
- Flutter异步编程async与await的基本使用
- 教大家一个万能PPT图片排版技巧,太赞了!
- 重复读取 HttpServletRequest 中 InputStream 的方法
- 测试面试题集锦(三)| 计算机网络和数据库篇(附答案)
- 关于Scikit-Learn你(也许)不知道的10件事