MySQL 8部分新特性(8.0.17)

本文涉及的产品
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
云数据库 RDS MySQL,高可用系列 2核4GB
简介: 参考官方文档,记录了部分我关注的新特性。本文仅仅是大概记录而已,准确描述参考官方文档:MySQL 8.0 Reference Manual欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下:数据字典使用事务性存储引擎。

参考官方文档,记录了部分我关注的新特性。本文仅仅是大概记录而已,准确描述参考官方文档:

MySQL 8.0 Reference Manual

欢迎关注我的《深入理解MySQL主从原理 32讲 》,如下:

image.png


  • 数据字典使用事务性存储引擎。以前版本数据字典存储在文件或者非事务引擎表中
    参考第14节。
  • 支持原子性DDL,进行原子性的数据库字典更新,
    并且binlog的写入和DDL操作为同一个原子性事务。参考13.1.1节
  • 升级过程,安装新版本后自动进行升级操作,而不需要执行mysql_upgarde.--upgrade
    选项用于控制这个功能。 8.0.16
  • 安全和账户管理
    授权表现在是Innodb表,以前都是MyISAM这会活得以下好处:
  1. 同时更改多个用户的时候可能某些成功某些失败。没有原子性
  2. 现在有原子性要么都成功要么都失败。13.1.1
  3. 默认认证插件为caching_sha2_password,性能更好更安全 6.4.1.3
  4. 支持角色 6.2.10
  • 资源管理器 8.12.5
  • Innodb 增强
  1. 自增字段修改加入redo 持久化
  2. 如果修改的值大于自增则持久化
  3. innodb_deadlock_detect可以关闭死锁检测
  4. INFORMATION_SCHEMA.INNODB_CACHED_INDEXES可以查看缓存的数据
  5. 支持for update nowait操作
  6. innodb使用mysql的数据字典 14
  7. 临时表存放到ibtmp1目录
  8. 分区表使用native,支持online DDL
  9. mysql系统表和变量现在放到innodb tablespace中叫做mysql.ibd
  10. innodb_undo_log_truncate默认开启
  11. innodb_rollback_segments参数含义,从全局变为每个undo表空间
  12. innodb_max_dirty_pages_pct_lwm参数默认值修改为10
  13. innodb_max_dirty_pages_pct从75增加到90
  14. innodb_auto_lock_mode默认设置为2,自增锁降低
  15. innodb_dedicated_server参数加入,默认是OFF,开启用于自动配置一些参数,包含:

innodb_buffer_pool_size
innodb_log_file_size
innodb_flush_method

  1. INFORMATION_SCHEMA.INNODB_TABLESPACES_BRIEF视图可以查看表空间类型
  2. Innodb支持原子性DDL
  3. SDI加入Serialized dictionary information (SDI) ,除了临时文件和UNDO表空间,其他数据
    文件都包含,SDI 数据是一个容易的表元数据,用于在数据字典损坏的情况下直接从表空间中

抽取元数据,是压缩格式JSON

  1. redo 记录优化
    开启独占的redo写线程

用户线程将脏数据写入flush list使用relaxed order
新参数加入

  innodb_log_wait_for_flush_spin_hwm:定义最大平均日志写入时间
  innodb_log_spin_cpu_abs_lwm:定义最小CPU使用总数
  innodb_log_spin_cpu_pct_hwm:定义最大CPU使用总数

这3个参数需要再研究

  1. innodb_log_buffer_size:可动态修改回收内存
  2. undo 日志对 small LOB data支持 8.0.12
  3. 瞬间增加字段支持,算法为ALGORITHM=INSTANT,优先使用INSTANT算法
  • 新增temptable存储引擎用于参数internal_tmp_mem_storage_engine参数,允许的值包含
    temptable 默认,memory是以前的。8.0.13支持blob数据类型
  • 关闭参数innodb_buffer_pool_in_core_file
  • 8.0.13用户建立的临时表和内部临时表存储在临时表空间中,当session断开的时候
    ibtmp1将会释放,但是不会将磁盘空间反还给操作系统,新增参数 innodb_temp_tablespaces_dir

设置为#innodb_tmp 当session断开的时候将会截断然后将空间释放到pool中,反还给
操作系统。

  • innodb_dedicated_server 可以动态分配部分参数 8.0.14
    innodb_buffer_pool_size

innodb_log_file_size
innodb_flush_method

  • innodb_parallel_read_threads参数并行进行聚集索引扫描用于优化check table性能
  • 如果超过temptable_max_ram内存大小将会使用临时文件或者innodb 表,默认使用mmap进行映射文件使用 temptable_use_mmap进行控制。新增的临时表引擎temptable和老的memory作为对比老的还是tmp_table_size or max_heap_table_size的大值
  • innodb_spin_wait_pause_multiplier 参数加入
  • innodb_parallel_read_threads 参数控制并发执行
  • 字符集变化
    默认的字符集使用utf8mb4而不是latin1,包含新增的校验字符集utf8mb4_ja_0900_as_cs
  • 优化器增强
  1. 不可见索引
  2. 降序索引
  3. 函数索引
  4. 类型返回检测
    比如c是一个TINYINT UNSIGNED 占用1字节最大255条件使用c < 256 恒成立,如果

c >= 255转换为c=255

  1. 8.0.16 半连接支持EXISTS子查询
  2. 8.0.17 反半连接支持not in/not EXISTS
  • WITH AS语法支持
  • 开窗函数
    RANK(), LAG(), NTILE()
  • 配置管理端口
    如果达到 max_connections设置连接管理端口进行管理
  1. 需要配置admin_address为IP值,默认不开启
  2. 需要配置admin_port端口默认33062
  3. 没有连接限制
  4. 需要SERVICE_CONNECTION_ADMIN权限
  • 8.0.17 innodb归档支持
  • 8.0.17 innodb克隆插件
  • hostname支持上限从60到255

作者微信:gp_22389860

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助 &nbsp; &nbsp; 相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
8天前
|
存储 关系型数据库 MySQL
MySQL 8.0特性-自增变量的持久化
【11月更文挑战第8天】在 MySQL 8.0 之前,自增变量(`AUTO_INCREMENT`)的行为在服务器重启后可能会发生变化,导致意外结果。MySQL 8.0 引入了自增变量的持久化特性,将其信息存储在数据字典中,确保重启后的一致性。这提高了开发和管理的稳定性,减少了主键冲突和数据不一致的风险。默认情况下,MySQL 8.0 启用了这一特性,但在升级时需注意行为变化。
|
2月前
|
JSON 关系型数据库 MySQL
MySQL 8.0 新特性
MySQL 8.0 新特性
147 10
MySQL 8.0 新特性
|
2月前
|
存储 Oracle 关系型数据库
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
从基本特性、技术选型、字段类型、事务提交方式、SQL语句、分页方法等方面对比Oracle和MySQL的区别。
506 18
Oracle和MySQL有哪些区别?从基本特性、技术选型、字段类型、事务、语句等角度详细对比Oracle和MySQL
|
1月前
|
SQL 安全 关系型数据库
MySQL8.2有哪些新特性?
【10月更文挑战第3天】MySQL8.2有哪些新特性?
37 2
|
3月前
|
算法 关系型数据库 MySQL
一天五道Java面试题----第七天(mysql索引结构,各自的优劣--------->事务的基本特性和隔离级别)
这篇文章是关于MySQL的面试题总结,包括索引结构的优劣、索引设计原则、MySQL锁的类型、执行计划的解读以及事务的基本特性和隔离级别。
|
3月前
|
SQL 算法 关系型数据库
(二十)MySQL特性篇:2022年的我们,必须要懂的那些数据库新技术!
 MySQL数据库从1995年诞生至今,已经过去了二十多个年头了,到2022.04.26日为止,MySQL8.0.29正式发行了GA版本,在此之前版本也发生了多次迭代,发行了大大小小N多个版本,其中每个版本中都有各自的新特性,所有版本的特性加起来,用一本书的篇幅也无法完全阐述清楚,因此本章主要会挑重点特性来讲,具体各版本的特性可参考MySQL官网的开发手册。
152 1
|
5月前
|
关系型数据库 MySQL 测试技术
深入探索MySQL 8:隐藏索引与降序索引的新特性
深入探索MySQL 8:隐藏索引与降序索引的新特性
|
5月前
|
关系型数据库 MySQL 数据库
MySQL 8.0 新特性之不可见主键
【6月更文挑战第9天】MySQL 8.0 引入了不可见主键特性,提供更灵活的数据库管理方式。不可见主键能减少业务逻辑干扰,提高数据安全性和隐私,同时在某些场景下更适用。示例展示了如何创建和使用不可见主键,但需要注意它可能带来的理解和调试难题。此特性增加了设计和管理数据库的选项,适用于对数据隐私有高要求的场景。随着技术发展,不断学习和探索新特性将提升数据库性能和功能。
79 9
|
5月前
|
SQL JSON 关系型数据库
MySQL 8.0新特性?
【6月更文挑战第14天】MySQL 8.0新特性?
50 1
|
5月前
|
SQL 安全 关系型数据库
MySQL数据库——事务-简介、事务操作、四大特性、并发事务问题、事务隔离级别
MySQL数据库——事务-简介、事务操作、四大特性、并发事务问题、事务隔离级别
85 1