前往小程序,Get更优阅读体验!
立即前往
首页
学习
活动
专区
工具
TVP
发布
社区首页 >专栏 >MySQL 8.0 版本更新 要点 列表 (8.0-8.0.23)

MySQL 8.0 版本更新 要点 列表 (8.0-8.0.23)

作者头像
AustinDatabases
发布2024-06-18 12:23:58
1500
发布2024-06-18 12:23:58
举报
文章被收录于专栏:AustinDatabasesAustinDatabases

最近撰写 MySQL 的文章出现错误,实在抱歉

1 是犯了常识性的错误,主要知识未更新完全,对于 MySQL 的老观念还存在,新的一些特性并未梳理 2 未做详实的实验并验证某些论断

以此作为一个教训,后续对于任何数据库的新的概念要及时更新,并尽力在有精力的情况下,做相关的严谨的测试。最近会分几期梳理 MySQL 8.01-8.038在数据库版本更新中的一些核心更新的信息汇总,方便大家进行查询。信息从官方文档 中获得

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-0.html


提示:由于更新的信息较多,此篇有未关注的一些信息具体详细完整的信息还请查询官方文档

8.0.0

版本更新功能

网页连接/注释

支持配置信息命令修改后的固化

https://dev.mysql.com/doc/refman/8.0/en/persisted-system-variables.html

数据目录及文件的存储方式更新

数据文件和字典表不在分开存储

支持invisible索引

https://dev.mysql.com/doc/refman/8.0/en/invisible-indexes.html

SQL Hint支持信息更新

https://dev.mysql.com/doc/refman/8.0/en/optimizer-hints.html

SQL和union解析规则的变更

例:SELECT 1 FOR UPDATE UNION SELECT 1 FOR UPDATE; 在8.0需要撰写为(SELECT 1 FOR UPDATE) UNION (SELECT 1 FOR UPDATE);

8.0.1

版本更新功能

网页连接/注释

倒排索引的支持

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-1.html#mysqld-8-0-1-configuration

支持派生表table name功能

原有语句SELECT * FROM (SELECT 1, 2, 3, 4) AS dt; 变为 SELECT * FROM (SELECT 1, 2, 3, 4) AS dt (a, b, c, d);

secure_file_priv值更改为NULL禁用导入和导出操作

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-1.html#mysqld-8-0-1-security

8.0.2

版本更新功能

网页连接/注释

字符集中多字节可变长度排序得到改进

属于(Bug #25750527, Bug #85546, WL #9554)

数据字典的变化,innodb不再使用自己数据库引擎的数据字典,而是使用mysql数据字典

https://dev.mysql.com/doc/refman/8.0/en/data-dictionary.html

master_info_repository和relay_log_info_repository信息默认写入数据表

早起版本这两个参数的数值默认写入到mysql下的文件中

8.0.3

版本更新功能

网页连接/注释

MySQL支持原子数据定义语句

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-3.html#mysqld-8-0-3-atomic-ddl

SELECT /*+ SET_VAR(sort_buffer_size = 16M) */ name FROM people ORDER BY name;

8.03支持Set_var单独指定变量属性的工作

INSERT /*+ SET_VAR(foreign_key_checks=OFF) */ INTO t2 VALUES(2);

8.03支持Set_var单独指定变量属性的工作

max_allowed_packet系统变量默认值从4MB变更到64MB

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-3.html

sql_log_bin 全局系统变量在8.03被取消,改为仅在session范围有效

(WL #10922)

log_bin系统变量被改为默认开启

要禁用二进制日志记录,您可以在启动时指定--skip-log-bin或--disable-log-bin选项。

增加innodb_dedicated_server设置选项开启后会自动设置innodb_buffer_pool_size,innodb_log_file_size,innodb_flush_method

https://dev.mysql.com/doc/refman/8.0/en/innodb-dedicated-server.html

innodb_flush_neighbors默认值从1更改为0

(WL #9631)

8.0.4

版本更新功能

网页连接/注释

原有的install plugin 改为 install component

INSTALL COMPONENT 'file://component_validate_password';

expire_logs_days 系统变量被弃用binlog_expire_logs_seconds作为唯一的binlog过期时间的设定

https://dev.mysql.com/doc/refman/8.0/en/replication-options-binary-log.html#sysvar_binlog_expire_logs_seconds

default_authentication_plugin 默认插件已经从 mysql_native_password 改为 caching_sha2_password.

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-4.html

8.0.5 -8.0.10

版本更新功能

网页连接/注释

版本无更新

https://dev.mysql.com/doc/relnotes/mysql/8.0/en/news-8-0-5-through-10.html

8.0.11

版本更新功能

网页连接/注释

提高innodb_buffer_pool的性能缓冲池初始化提供多线程功能

(Bug #22963374, Bug #80784)

对于redo缓冲区的优化

https://dev.mysql.com/doc/refman/8.0/en/optimizing-innodb-logging.html

大量的Bug Fixed

在innodb 数据库引擎,复制,组复制等部分都有大量的bug 修复

8.0.12

版本更新功能

网页连接/注释

支持explain 对insert ,update,delete等语句进行解析

https://dev.mysql.com/doc/refman/8.0/en/explain-extended.html

支持MySQL接受的SQL语句重写的功能插件

https://dev.mysql.com/doc/refman/8.0/en/rewriter-query-rewrite-plugin.html

大量的bug fixed

针对innodb数据库引擎,分区,数据复制

8.0.13

版本更新功能

网页连接/注释

支持在blob,text,Geometry,Json中提供默认值设施功能

(WL #9418)

SELECT @var, @var:=@var+1 赋予变量的方式有风险,后续的版本将兼容,此功能后续会清除

(WL #12131)

8.0.14

版本更新功能

网页连接/注释

为数据库更改密码,应用当时不用停机的功能,

https://dev.mysql.com/doc/refman/8.0/en/password-management.html#dual-passwords

慢查询SQL开始时间信息的加入

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_log_slow_extra

events_statements_current,events_statements_history,events_statements_history_long 三个PS view 添加 statement_id并自行维护递增

(WL#12165)

windows 版本MySQL 有大量的更新

大量的innodb 数据库引擎,replication 数据复制的bug fixed

8.0.15

版本更新功能

网页连接/注释

修复在检查点操作中持续进行数据字典的操作,有丢失数据的风险

Bug #29120297

8.0.16

版本更新功能

网页连接/注释

提供了skip scan Range Access 方法

https://dev.mysql.com/doc/refman/8.0/en/range-optimization.html#range-access-skip-scan

8.0.17

版本更新功能

网页连接/注释

提供utf8mb4_0900_bin 排序规则相较utf8mb4_bin功能排序的速度有提升

https://dev.mysql.com/doc/refman/8.0/en/charset-unicode-sets.html

innodb 支持多值数组索引

CREATE INDEX zips ON t1( (CAST(data->'$.zipcode' AS UNSIGNED ARRAY)) )

大量innodb数据库引擎的bug fixed

8.0.18

版本更新功能

网页连接/注释

支持zstd算法的客户端传输数据到Server端数据的压缩

(WL #12039, WL #12475)

支持hash join 需为等值连接

SELECT * FROM t1 JOIN t2 ON t1.c1 = t2.c1;

大量innodb 数据库引擎,复制,组复制的bug fixed

8.0.19

版本更新功能

网页连接/注释

支持MySQL账号在输入错误密码后的锁定时间

https://dev.mysql.com/doc/refman/8.0/en/password-management.html

optimizer_switch中的hash_join优化器开关无效

https://dev.mysql.com/doc/refman/8.0/en/server-system-variables.html#sysvar_optimizer_switch

8.0.20

版本更新功能

网页连接/注释

max_length_for_sort_data 系统变量弃用

(WL #13600)

INSERT ... ON DUPLICATE KEY UPDATE 语句中在进行列值的计算中需要带有表的别名

INSERT INTO t1 (a,b,c) VALUES (1,2,3),(4,5,6) AS new ON DUPLICATE KEY UPDATE c = new.a+new.b;

双写缓冲区的存储区域已从系统表空间移动到双写文件

将双写缓冲区存储区域移出系统表空间可减少写容量,增加吞吐量,并提供双写缓冲区页面放置的灵活性

添加如下系统变量innodb_doublewrite_dir,innodb_doublewrite_files,innodb_doublewrite_pages,innodb_doublewrite_batch_size

https://dev.mysql.com/doc/refman/8.0/en/innodb-doublewrite-buffer.html

8.0.21 - 8.0.22

版本更新功能

网页连接/注释

group_replication_ip_whitelistsystem系统变量被弃用group_replication_ip_allowlist替代原有的变量被使用

(WL #14175)

START SLAVE,STOP SLAVE,SHOWSLAVE STATUS,SHOW SLAVE HOSTS和RESET SLAVE 命令被弃用

新命令START REPLICA, STOP REPLICA, SHOW REPLICA STATUS, SHOW REPLICAS, RESET REPLICA (WL #14171)

在optimizer_switch system 变量添加prefer_ordering_index,控制在order by group by 子句中是否使用排序索引优化查询

部分情况下打开prefer_ordering_index 会产生查询使用错误的索引导致查询的性能降低

在8.018的基础上增加了查询中的强制类型转换

(WL #13456)

原有在组复制中需要设置Binlog_checksum = none,自8.021版本不需要进行此项设置

(WL #9038)

可以开启或关闭重做日志redo log,INNODB_REDO_LOG_ENABLE

https://dev.mysql.com/doc/refman/8.0/en/innodb-redo-log.html#innodb-disable-redo-logging

锁系统互斥量(lock_sys->mutex)被分片锁取代

(WL #10314)

8.0.21有对replication group有诸多的改善

8.022添加对符合条件的查询实现了派生条件下推,即某些情况下可将外层条件下推到派生表

https://dev.mysql.com/doc/refman/8.0/en/switchable-optimizations.html#optflag_derived-condition-pushdown

8.0.23

版本更新功能

网页连接/注释

change master 语句被弃用,替换为change replicaiton source

https://dev.mysql.com/doc/refman/8.0/en/change-replication-source-to.html

添加了autoextend_size 增加表空间变满自动扩展大小的设置

https://dev.mysql.com/doc/refman/8.0/en/innodb-tablespace-autoextend-size.html

8.0.24-8.0.37 待.....


本文参与 腾讯云自媒体同步曝光计划,分享自微信公众号。
原始发表:2024-06-16,如有侵权请联系 cloudcommunity@tencent.com 删除

本文分享自 AustinDatabases 微信公众号,前往查看

如有侵权,请联系 cloudcommunity@tencent.com 删除。

本文参与 腾讯云自媒体同步曝光计划  ,欢迎热爱写作的你一起参与!

评论
登录后参与评论
0 条评论
热度
最新
推荐阅读
相关产品与服务
云数据库 MySQL
腾讯云数据库 MySQL(TencentDB for MySQL)为用户提供安全可靠,性能卓越、易于维护的企业级云数据库服务。其具备6大企业级特性,包括企业级定制内核、企业级高可用、企业级高可靠、企业级安全、企业级扩展以及企业级智能运维。通过使用腾讯云数据库 MySQL,可实现分钟级别的数据库部署、弹性扩展以及全自动化的运维管理,不仅经济实惠,而且稳定可靠,易于运维。
领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档