关于MySQL 8.0的几个重点【转】
转自 关于MySQL 8.0的几个重点,都在这里 https://mp.weixin.qq.com/s/QUpk9uuS2JTli1GT6HuORA
一、关于MySQL Server的改进
1.1 redo log 重构
在MySQL8.0中重新设计了redo log,主要改进fsync,使得效率更高,减少锁,优化flush机制,不会频繁flush。同时,支持更高用户并发请求。
http://dimitrik.free.fr/blog/archives/2017/10/mysql-performance-80-redesigned-redo-log-readwrite-workloads-scalability.html
1.2 MySQL DDL
在MySQL8.0中实现了DDL的原子性。
https://mysqlserverteam.com/atomic-ddl-in-mysql-8-0/
1.3 直方图
在MySQL8.0中添加了直方图的概念,用于索引的统计和分析。
https://mysqlserverteam.com/histogram-statistics-in-mysql/
1.4 降序索引
MySQL 8.0 开始提供按降序啦~
https://dev.mysql.com/doc/refman/8.0/en/descending-indexes.html
1.5 隐藏索引
MySQL8.0支持隐藏索引,在对索引的添加和修改,可以通过隐藏索引来实现,方便了索引的管理。
https://dev.mysql.com/doc/refman/8.0/en/invisible-indexes.html
1.6 临时表的改进
在5.7以来,所有内部临时表成为"ibtmp1"的共享表空间。此外临时表的元数据也存储在内存中。
在MySQL8.0中,MEMORY存储引擎也将被TempTable存储引擎替换为内部临时表的默认存储引擎。这个新引擎VARCHAR和VARBINARY列提供更高效的存储空间。
https://dev.mysql.com/doc/refman/8.0/en/internal-temporary-tables.html
1.7 持久的全局变量
MySQL8.0通过新语法restart,使下次重启仍然生效。
http://lefred.be/content/mysql-8-0-changing-configuration-easily-and-cloud-friendly/
1.8 redo和undo的加密
在MysQL 5.7中,可以为每个表的表空间进行加密。而在MySQL8.0中,还可以为UNDO和REDO LOG进行加密,从而提高了MySQL的安全性。
https://dev.mysql.com/doc/refman/8.0/en/innodb-tablespace-encryption.html#innodb-tablespace-encryption-redo-log
1.9 Innodb 锁的修改
在SQL里添加参数FOR UPDATE NOWAIT和FOR UPDATE SKIP LOCKED,可以设置跳过锁的等待,或者跳过锁定。
https://dev.mysql.com/doc/refman/8.0/en/innodb-locking-reads.html#innodb-locking-reads-nowait-skip-locked
1.10 窗口函数
在MySQL8.0中,添加了窗口函数,它可以用来实现若干新的查询方式,以便更好地用于数据统计和分析。
http://elephantdolphin.blogspot.com/2017/09/mysql-8s-windowing-function-part-1.html
1.11 新的优化器
在MySQL 8.0.3中,引入了新的优化器SET_VAR,用于在SQL中指定参数配置。
https://mysqlserverteam.com/new-optimizer-hint-for-changing-the-session-system-variable/
1.12 角色
在MySQL8.0中,添加了角色的功能。更方便了用户的管理
http://datacharmer.blogspot.com/2017/09/revisiting-roles-in-mysql-80.html
1.13 字符集的修改
在MySQL8.0.1中,MySQL支持了Unicode 9.0,并且修改了默认字符集为utf8mb4
http://lefred.be/content/mysql-clients-and-emojis/
二、关于MySQL 复制的改进
2.1 复制方面修改
在MySQL8.0.3中,关于binlog和复制方面的新的改变。
http://datacharmer.blogspot.com/2017/09/revisiting-roles-in-mysql-80.html
2.2 更高效json复制
在MySQL8.0.3中,关于JSON复制更高效,并提供了新的json功能。在binlog中只记录了update修改的内容,而不是全部记录。
https://mysqlhighavailability.com/efficient-json-replication-in-mysql-8-0/
2.3 复制增强
在MySQL8.0.3中,关于对复制的默认参数的修改、对组复制,都增加了“动态跟踪、调试日志”等更多性能方面的监控工具。
https://mysqlhighavailability.com/replication-features-in-mysql-8-0-3/
2.4 MySQL 复制新功能
在MySQL8.0中,对于复制的改进,增加了可观察性,提供了复制的效率(基于WRITESET的并行复制)。
https://mysqlhighavailability.com/mysql-8-0-new-features-in-replication/
三、关于MySQL MGR的改进
3.1 组复制白名单的支持
在MySQL8.0.4 中,对组复制白名单的支持,有效地提高了组复制的安全性。
https://mysqlhighavailability.com/hostname-support-in-group-replication-whitelist/
3.2 MySQL INNODB Cluster 新功能
在MySQL INNODB Cluster 新增加的功能:
https://mysqlserverteam.com/mysql-innodb-cluster-whats-new-in-the-8-0-ga-release/
3.3 MySQL MGR的监控
提高了MySQL组复制的可观察性和可管理性,并在MySQL8.0.4中增强了相关工具。
https://mysqlhighavailability.com/more-p_s-instrumentation-for-group-replication/
四、关于MySQL bug修复
4.1 自增列bug修复(199)
在MySQL8.0 关于自增列的bug的修复。不再采用max(自增id)+1的做法来确定下一个自增id。
http://lefred.be/content/bye-bye-bug-199/
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· AI与.NET技术实操系列(二):开始使用ML.NET
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· DeepSeek 开源周回顾「GitHub 热点速览」
· 物流快递公司核心技术能力-地址解析分单基础技术分享
· .NET 10首个预览版发布:重大改进与新特性概览!
· AI与.NET技术实操系列(二):开始使用ML.NET
· 单线程的Redis速度为什么快?
2017-04-26 Serv-U 的升级及数据备份和迁移【转】