千家信息网

MySQL8.0有什么新特性

发表于:2026-11-02 作者:千家信息网编辑
千家信息网最后更新 2026年11月02日,本篇内容介绍了"MySQL8.0有什么新特性"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!一、MyS
千家信息网最后更新 2026年11月02日MySQL8.0有什么新特性

本篇内容介绍了"MySQL8.0有什么新特性"的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!

一、MySQL 8.0中添加的功能

1、新的系统字典表

整合了存储有关数据库对象信息的事务数据字典,所有的元数据都用InnoDB引擎进行存储

2、支持DDL 原子操作

InnoDB表的DDL支持事务完整性,要么成功要么回滚,将DDL操作回滚日志写入到data dictionary 数据字典表 mysql.innodb_ddl_log 中用于回滚操作

3、安全和用户管理

  • 新增caching_sha2_password认证插件,并且是默认的身份认证插件。性能和安全方面加强

  • 权限支持role

  • 新增密码历史记录功能,限制重复使用以前的密码

4、支持资源管理

支持创建和管理资源组,并允许将服务器运行的线程分配给特定的组,以便线程根据资源组可用的资源执行

5、innodb 增强

  • 自增列优化,修复MySQL的bug#199,该bug导致在DB重启时,MySQL会将表上最大的自增值作为最大值,下次分配是分配max(id)+1,如果是归档表或者其它模式删除数据后,DB系统重启,自增值可能被重用

  • 新增INFORMATION_SCHEMA.INNODB_CACHED_INDEXES,查看每个索引缓存在InnoDB缓冲池中的索引页数

  • InnoDB临时表都将在共享临时表空间ibtmp1中创建

  • 对于SELECT ... FOR SHARE和SELECT ... FOR UPDATE语句,InnoDB支持NOWAIT和SKIP LOCKED

  • innodb_undo_tablespaces的最小值为2,并且不再允许将innodb_undo_tablespaces设置为0。 最小值2确保回滚段始终在撤消表空间中创建,而不是在系统表空间中创建

  • 支持 ALTER TABLESPACE ... RENAME TO 语法

  • 新增innodb_dedicated_server,让InnoDB根据服务器上检测到的内存量自动配置innodb_buffer_pool_size,innodb_log_file_size,innodb_flush_method

  • 新增INFORMATION_SCHEMA.INNODB_TABLESPACES_BRIEF视图

  • 新增了动态配置项 innodb_deadlock_detect,用来禁用死锁检查,因为在高并发系统中,当大量线程等待同一个锁时,死锁检查会大大拖慢数据库

  • 支持使用innodb_directories选项在服务器脱机时将表空间文件移动或恢复到新位置

6、MySQL 8.0更好支持文档型数据库和JSON

7、优化

  • 不可见索引,开始支持invisible index,(感觉又和Oracle一样了),在优化SQL的过程中可以设置索引为不可见,优化器变不会利用不可见索引

  • 支持降序索引,可以对索引定义 DESC,之前,索引可以被反序扫描,但影响性能,而降序索引就可以高效的完成

8、支持RANK(), LAG()、NTILE()等函数

9、正则表达式增强,提供了REGEXP_LIKE(),EGEXP_INSTR(), REGEXP_REPLACE(), REGEXP_SUBSTR()等函数

10、新增备份锁,允许在线备份期间的DML,同时防止可能导致快照不一致的操作。 备份锁由LOCK INSTANCE FOR BACKUP和UNLOCK INSTANCE语法支持

11、字符集 默认字符集由latin1变为utf8mb4

12、配置文件增强

MySQL 8.0版本支持在线修改全局参数持久化,通过加上PERSIST关键字,可以将调整持久化到新的配置文件中,再次重启db还可以应用到最新的参数。对于加上 PERSIST 关键字修改参数命令,MySQL系统会生成一个包含json格式数据的 mysqld-auto.cnf 文件,比如执行:

set PERSIST expire_logs_days=10 ; #内存和json文件都修改,重启还生效

set GLOBAL expire_logs_days=10 ; #只修改内存,重启丢失

系统会在数据目录下生成一个包含如下内容的 mysqld-auto.cnf 的文件:

{ "mysql_server": {"expire_logs_days": "10" } }

当 my.cnf 和 mysqld-auto.cnf 同时存在时,后者具有高优先级。

13、直方图

MySQL 8.0 版本开始支持期待已久直方图。优化器会利用column_statistics的数据,判断字段的值的分布,得到更准确的执行计划。

可以使用 ANALYZE TABLE table_name [UPDATE HISTOGRAM on col_name with N BUCKETS |DROP HISTOGRAM ON clo_name] 来收集或者删除直方图信息

14、支持会话级别SET_VAR 动态调整部分参数,有利于提升语句性能。

select /*+ SET_VAR(sort_buffer_size = 16M) */ id from test order id ;

insert /*+ SET_VAR(foreign_key_checks=OFF) */ into test(name) values(1);

15、默认参数的调整

调整back_log的默认值,保持和 max_connections一致,增强突发流量带来的连接处理容量。

修改 event_scheduler 默认为ON,之前默认是关闭的。

调整max_allowed_packet 的默认值,从4M增加到64M。

调整bin_log,log_slave_updates默认值为on。

调整expire_logs_days的过期时间为30天,老版本是7天,生产环境时,检查该参数,防止binlog过多造成空间紧张。

调整innodb_undo_log_truncate 默认为ON

调整innodb_undo_tablespaces 默认值为2

调整innodb_max_dirty_pages_pct_lwm 默认值10

调整innodb_max_dirty_pages_pct默认值为90

新增innodb_autoinc_lock_mode 默认值为2

16、InnoDB性能提升

废除buffer pool mutex,将原来一个mutex拆分成多个,提高并发

拆分LOCK_thd_list 和 LOCK_thd_remove 这两个mutex,大约可提高线程链接效率5%。

17、行缓存

MySQL8.0的优化器可以估算将要读取的行数,因此可以提供给存储引擎一个合适大小的row buffer来存储需要的数据。大批量的连续数据扫描的性能将受益于更大的record buffer

18、改进扫描性能

改进InnoDB范围查询的性能,可提升全表查询和范围查询 5-20%的性能。

19、成本模型

InnoDB缓冲区可以估算缓存区中的有多少表和索引,这可以让优化器选择访问方式时知道数据是否可以存储在内存中还是必须存储到磁盘上。

20、重构SQL分析器

改进SQL分析器。旧的分析器由于其语法复杂性和自顶向下的分析方式从而有严重的限制,导致难以维护和扩展。

二、MySQL8.0中被废弃的特性

  • 废弃validate_password 插件

  • 废弃ALTER TABLESPACE和DROP TABLESPACE ENGINE子句

  • 废弃JSON_MERGE() -> JSON_MERGE_PRESERVE()取代

  • 废弃 have_query_cache 系统变量

三、MySQL8.0被移除的功能

  • query cache 功能被移除,相关的系统变量也被移除

  • mysql_install_db 被 mysqld --initialize or --initialize-insecure 替代

  • INFORMATION_SCHEMA下的INNODB_LOCKS和INNODB_LOCK_WAITS表已被删除。 用Performance Schema data_locks和data_lock_waits表替代

  • INFORMATION_SCHEMA下的四张表移除:GLOBAL_VARIABLES, SESSION_VARIABLES, GLOBAL_STATUS, SESSION_STATUS

  • InnoDB不再支持压缩的临时表。

  • 不再支持 PROCEDURE ANALYSE()语法

Renamed InnoDB Information Schema Views

Old Name   New Name

INNODB_SYS_COLUMNS   INNODB_COLUMNS

INNODB_SYS_DATAFILES   INNODB_DATAFILES

INNODB_SYS_FIELDS   INNODB_FIELDS

INNODB_SYS_FOREIGN  INNODB_FOREIGN

INNODB_SYS_FOREIGN_COLS   INNODB_FOREIGN_COLS

INNODB_SYS_INDEXES  INNODB_INDEXES

INNODB_SYS_TABLES  INNODB_TABLES

INNODB_SYS_TABLESPACES INNODB_TABLESPACES

INNODB_SYS_TABLESTATS  INNODB_TABLESTATS

INNODB_SYS_VIRTUAL INNODB_VIRTUAL

remove的server选项:

--temp-pool

--ignore-builtin-innodb

--des-key-file

--log-warnings

--ignore-db-dir

remove的配置选项:

innodb_file_format

innodb_file_format_check

innodb_file_format_max

innodb_large_prefix

remove的系统变量

information_schema_stats ->information_schema_stats_expiry

ignore_builtin_innodb

innodb_support_xa

show_compatibility_56

have_crypt

date_format

datetime_format

time_format

max_tmp_tables

global.sql_log_bin(session.sql_log_bin保留)

log_warnings ->log_error_verbosity

multi_range_count

secure_auth

sync_frm

tx_isolation -> transaction_isolation

tx_read_only -> transaction_read_only

ignore_db_dirs

query_cache_limit

query_cache_min_res_unit

query_cache_size

query_cache_type

query_cache_wlock_invalidate

innodb_undo_logs -->innodb_rollback_segments

remove的状态变量

Com_alter_db_upgrade

Slave_heartbeat_period

Slave_last_heartbeat

Slave_received_heartbeats

Slave_retried_transactions, Slave_running

Qcache_free_blocks

Qcache_free_memory

Qcache_hits

Qcache_inserts

Qcache_lowmem_prunes

Qcache_not_cached

Qcache_queries_in_cache

Qcache_total_blocks

Innodb_available_undo_logs status

remove的函数

JSON_APPEND() --> JSON_ARRAY_APPEND()

ENCODE()

DECODE()

DES_ENCRYPT()

DES_DECRYPT()

remove的client选项:

--ssl --ssl-verify-server-cert 被删除,用--ssl-mode=VERIFY_IDENTITY |REQUIRED |DISABLED 替代

--secure-auth

"MySQL8.0有什么新特性"的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注网站,小编将为大家输出更多高质量的实用文章!

支持 数据 调整 索引 系统 性能 参数 文件 存储 空间 配置 内存 功能 变量 线程 语法 资源 分析 特性 内容 数据库的安全要保护哪些东西 数据库安全各自的含义是什么 生产安全数据库录入 数据库的安全性及管理 数据库安全策略包含哪些 海淀数据库安全审计系统 建立农村房屋安全信息数据库 易用的数据库客户端支持安全管理 连接数据库失败ssl安全错误 数据库的锁怎样保障安全 新华互联网科技 北京路客互联网科技有限公司 互联网科技开发公司 互联网金融 科技 互联网科技公司怎么样 齐家互联网科技 南京欣网互联网科技 善班互联网科技有限公司 北京三清互联网科技 深圳国际航运科技和互联网 广州慧亚互联网科技怎么样 湖南一路畅行互联网科技 成都互联网科技公司工作好不好 天津腾达互联网科技有限公司 允成互联网科技有限公司融资 互联网公司黑科技创始人 伊宁互联网科技做什么的 银行科技岗属于互联网吗 萌小萌互联网科技河南有限公司 互联网时代科技型公司的机会 亿人帮互联网科技有限公司 掌上梦互联网科技 互联网前沿科技 成都仁贤领冠互联网科技有限公司 互联网大会黑科技排名 互联网对科技的发展 南平创想时代互联网科技有限公司 允成互联网科技有限公司融资 中科明德北京互联网科技 全球科技与互联网公司市值变化
0