共计 2433 个字符,预计需要花费 7 分钟才能阅读完成。
这篇文章主要讲解了“MySQL 8 新特性有哪些”,文中的讲解内容简单清晰,易于学习与理解,下面请大家跟着丸趣 TV 小编的思路慢慢深入,一起来研究和学习“MySQL 8 新特性有哪些”吧!
授权表现在是 Innodb 表,以前都是 MyISAM 这会活得以下好处:
同时更改多个用户的时候可能某些成功某些失败。没有原子性
现在有原子性要么都成功要么都失败。13.1.1
默认认证插件为 caching_sha2_password,性能更好更安全 6.4.1.3
支持角色 6.2.10
资源管理器 8.12.5
Innodb 增强
自增字段修改加入 redo 持久化
如果修改的值大于自增则持久化
innodb_deadlock_detect 可以关闭死锁检测
INFORMATION_SCHEMA.INNODB_CACHED_INDEXES 可以查看缓存的数据
支持 for update nowait 操作
innodb 使用 mysql 的数据字典 14
临时表存放到 ibtmp1 目录
分区表使用 native,支持 online DDL
mysql 系统表和变量现在放到 innodb tablespace 中叫做 mysql.ibd
innodb_undo_log_truncate 默认开启
innodb_rollback_segments 参数含义,从全局变为每个 undo 表空间
innodb_max_dirty_pages_pct_lwm 参数默认值修改为 10
innodb_max_dirty_pages_pct 从 75 增加到 90
innodb_auto_lock_mode 默认设置为 2,自增锁降低
innodb_dedicated_server 参数加入, 默认是 OFF,开启用于自动配置一些参数,包含:
innodb_buffer_pool_size
innodb_log_file_size
innodb_flush_method
INFORMATION_SCHEMA.INNODB_TABLESPACES_BRIEF 视图可以查看表空间类型
Innodb 支持原子性 DDL
SDI 加入 Serialized dictionary information (SDI),除了临时文件和 UNDO 表空间,其他数据
文件都包含,SDI 数据是一个容易的表元数据,用于在数据字典损坏的情况下直接从表空间中
抽取元数据,是压缩格式 JSON
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 个参数需要再研究
innodb_log_buffer_size: 可动态修改回收内存
undo 日志对 small LOB data 支持 8.0.12
瞬间增加字段支持,算法为 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
优化器增强
不可见索引
降序索引
函数索引
类型返回检测
比如 c 是一个 TINYINT UNSIGNED 占用 1 字节最大 255 条件使用 c 256 恒成立,如果
c = 255 转换为 c =255
8.0.16 半连接支持 EXISTS 子查询
8.0.17 反半连接支持 not in/not EXISTS
WITH AS 语法支持
开窗函数
RANK(), LAG(), NTILE()
配置管理端口
如果达到 max_connections 设置连接管理端口进行管理
需要配置 admin_address 为 IP 值,默认不开启
需要配置 admin_port 端口默认 33062
没有连接限制
需要 SERVICE_CONNECTION_ADMIN 权限
8.0.17 innodb 归档支持
8.0.17 innodb 克隆插件
hostname 支持上限从 60 到 255
感谢各位的阅读,以上就是“MySQL 8 新特性有哪些”的内容了,经过本文的学习后,相信大家对 MySQL 8 新特性有哪些这一问题有了更深刻的体会,具体使用情况还需要大家实践验证。这里是丸趣 TV,丸趣 TV 小编将为大家推送更多相关知识点的文章,欢迎关注!