MySQL 8.0的重点都有哪些

71次阅读
没有评论

共计 3099 个字符,预计需要花费 8 分钟才能阅读完成。

MySQL 8.0 的重点都有哪些,很多新手对此不是很清楚,为了帮助大家解决这个难题,下面丸趣 TV 小编将为大家详细讲解,有这方面需求的人可以来学习下,希望你能有所收获。

一、关于 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/ 

看完上述内容是否对您有帮助呢?如果还想对相关知识有进一步的了解或阅读更多相关文章,请关注丸趣 TV 行业资讯频道,感谢您对丸趣 TV 的支持。

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