当前位置: 首页 > article >正文

【MySQL】MySQL8.0新特性整理

MySQL 8.0 引入了许多新特性和改进,旨在提升性能、安全性和易用性。以下是一些主要的新特性:

1. 默认字符集和排序规则

  • 默认字符集:MySQL 8.0 的默认字符集从 latin1 更改为 utf8mb4,支持更多的字符和表情符号。
  • 排序规则:默认排序规则从 utf8_general_ci 更改为 utf8mb4_0900_ai_ci,提高了排序的准确性和性能。

2. 窗口函数(Window Functions)

  • 窗口函数:MySQL 8.0 引入了窗口函数,如 ROW_NUMBER(), RANK(), DENSE_RANK(), LEAD(), LAG() 等,使得复杂的查询变得更加简单和高效。

3. 不可见索引(Invisible Indexes)

  • 不可见索引:可以通过 ALTER TABLE ... ALTER INDEX ... INVISIBLE 使索引对查询优化器不可见,用于性能调试和优化。

4. 降序索引(Descending Indexes)

  • 降序索引:支持在创建索引时指定降序排列,如 INDEX idx (col1 DESC)

5. 持久化变量(Persisted Variables)

  • 持久化变量:使用 SET PERSIST 命令可以将系统变量持久化到配置文件中,重启后仍然有效。

6. 资源组(Resource Groups)

  • 资源组:可以为不同的线程分配不同的 CPU 资源,提高资源管理和性能优化。

7. 数据库粒度只读(Database-Level Read-Only)

  • 数据库粒度只读:可以通过 ALTER DATABASE ... READ ONLY = 1 设置数据库级别的只读模式。

8. 克隆插件(Clone Plugin)

  • 克隆插件:支持从本地或远程克隆数据,简化了数据备份和恢复的过程。

9. 快速加列(Instant Add Column)

  • 快速加列:支持在线快速添加列,只需修改元数据,大大减少了大表加列所需的时间。

10. 隐藏主键(Hidden Primary Key)

  • 隐藏主键:可以通过 sql_generate_invisible_primary_key 参数为没有显式设置主键的表创建一个隐式的主键。

11. 优化的全文搜索(Improved Full-Text Search)

  • 全文搜索:支持 n-gram 全文解析器,提高了全文搜索的灵活性和性能。

12. 通用表表达式(Common Table Expressions, CTE)

  • CTE:支持递归和非递归的 CTE,使得复杂的查询更加清晰和易于管理。

13. 优化的 DDL 操作(Optimized DDL Operations)

  • DDL 操作:支持原子化的 DDL 操作,确保了数据的一致性和完整性。

14. 增强的安全性(Enhanced Security)

  • 角色管理:引入了角色管理功能,简化了权限管理。
  • 密码策略:支持更严格的密码策略,增强了安全性。

15. 性能增强(Performance Enhancements)

  • 并行 DDL:支持并行 DDL 操作,提高了索引创建和删除的速度。
  • 双写缓冲区改进:改进了双写缓冲区(doublewrite buffer),提高了性能和可靠性。

16. 其他改进

  • binlog 事务压缩:支持使用 zstd 算法压缩 binlog 事务,减少了磁盘空间占用。
  • 分区表的改进:支持更多的分区类型和优化的分区管理。
  • GIS 增强:支持地理和空间参考系统(SRS),增强了 GIS 功能。

http://www.kler.cn/a/413367.html

相关文章:

  • 道可云人工智能元宇宙每日资讯|第三届京西地区发展论坛成功召开
  • MD5算法加密笔记
  • [护网杯 2018]easy_tornado
  • linux安全管理-日志审计
  • 如何更好地设计SaaS系统架构
  • 民锋视角:数据分析如何助力金融决策
  • docker部署nginx,并配置SSL证书
  • windows 应用 UI 自动化实战
  • 高级SQL技巧:解锁数据处理与分析的深层能力
  • python除了熟悉的pandas,openpyxl库也很方便的支持编辑Excel表
  • flink学习(5)——预定义source
  • linux安全管理-账号口令
  • 前端八股(自学笔记)分享—页面布局(四)
  • 讨论JAVA、JVM与Spring
  • nextjs+nestjs+prisma写todolist全栈项目
  • LeetCode—53. 最大子数组和(中等)
  • 【C/C++】数据库链接入门教程:从零开始的详细指南!MySQL集成与操作
  • 将自定义 AWS S3 快照存储库连接到 Elastic Cloud
  • zotero安卓测试版下载和使用
  • docker run创建容器如何执行多条命令
  • OpenCV图像基础处理:通道分离与灰度转换
  • 《Vue 初印象:快速上手 Vue 基础语法》
  • CSS笔记(三)卡片选择
  • 简易记事本前端开发(初步)
  • 分布式系统RPC原理面试题及参考答案
  • 解决stuid项目类爆炸问题