MySQL 8新特性有哪些

57次阅读
没有评论

共计 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 小编将为大家推送更多相关知识点的文章,欢迎关注!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-26发表,共计2433字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)