InnoDB老大分享,看看MySQL 8.0的改进

前言

十一长假,想必小伙伴都沉浸在这一悠长假期。然而,国际国内的环境形势确十分紧张。对内,各省开始推出“史上最强房价调控”政策(怎么听着有点熟),台湾岛内的形势看似也不怎么太平。对外,Oracle、Percona、MariaDB等技术大会一波接一波,最新技术分享的PPT正在袭来,你准备好了没?

Inside君很早就在奇妙清单(推荐这个小软件,比Slack更轻,团队已被微软收购)中设置了提醒,就等InnoDB老大Sunny Bains在Percona Live Euro上介绍MySQL 8.0中的改进。虽然之前在MySQL 8.0发布,是时候与MyISAM说再见了的文中已经有了新特性的介绍,但是InnoDB老大的分享干货应该更多吧。

Integrated Data Dictionary

InnoDB团队把这个叫做集成数据字典,其实就是将数据字典存储在了InnoDB,从而废弃了之前的frm文件。Sunny提到的一个问题其实可能之前大家没有关注,元数据字典锁需要非常小心,否则非常容易发生死锁。当然,这是在内核开发层面的问题,普通用户无需关心。

Concurrent access had to be very carefully managed
* Separate locking/latching mechanisms
* MDL, dict_sys_t::mutex, dict_sys_t::rw_lock etc.
* Prone to deadlocks 

通过InnoDB存储引擎来管理数据字典的好处是:

数据的变化是一致的,相信肯定有同学遇到过frm与InnoDB不一致导致的问题发生;

  • 可以实现事务DDL,而SQL Server已经支持好多好多好多年;
  • 元数据锁(MDL)由一套锁机制来进行管理;(MDL锁可见我之前的介绍:深入理解MySQL的MDL元数据锁)

性能改进

优化器能得到每个索引在内存中的使用量,从而给出更好的执行计划。

移除buffer pool的mutex锁,这是Percona patch。其实这个patch从Percona 5.5版本开始就有了,只是官方等到8.0才合并进来。但是Sunny不忘“损”一下Percona,大家自己体会下:

Took a long time to fix problems in the contributed patch

  • QA team found lots of problems in edge cases - great effort
  • Foundation for more improvements in the future

redo log的性能改进,这是阿里团队贡献的patch。之前Inside君也做过这块的研究,性能提升了30%,不知道阿里是怎么实现的,有空一定要看看。

Group purging of rows by table ID,其实这是对undo purge的一个性能改进。之前由于多线程的purge分配实现,导致可能存在下面这种情况,即对一张表进行删除操作,可能导致大量的索引锁冲突,从而导致数据库整体性能下降。

新增参数innodb_deadlock_detect,不进行死锁检测,从而提升性能。死锁检测已经在5.6版本时从递归算法改为了非递归算法,8.0直接可以关闭死锁,不过个人认为这个参数的意义并不是很大,极端情况或许有点用。

其他改进

memcached plugin支持get_multi和range查询,get_multi是硬需求啊,之前和很多小伙伴反应不支持这个接口不应该啊,好在8.0终于支持了。but,现在还有人用memcached嘛?

自增持久化,MySQL 3.x版本遗留的问题终于解决了。Bug 199 - Created on 27 March 2003。5.7解决了一个2006年的遗留bug,8.0解决了2003年的一个遗留bug,那么9.0呢?

未来的方向 (Future Direction)

我觉得这块才是这个PPT的重点部分,虽然官方没有做一个Road Map,但至少给了一个方向。内核开发人员们,千万不要做官方正在做的东西,切记~~~

MySQL 8.0还有1年多的时间才发布,真是好期待。想要知道本次分享完整内容的同学,可跳转到此页面进行查看。

猜你喜欢

#最好的MYSQL培训# 11月上海周末线下班

发表评论

坐等沙发
相关文章
MySQL 8.0 200W QPS!!!InnoDB大重构 #M1005#
MySQL 8.0 200W QPS!!!InnoDB大重构 …
滚蛋吧,MySQL主从复制延迟
滚蛋吧,MySQL主从复制延迟
MySQL 8.0.3性能大杀器 —— CATS
MySQL 8.0.3性能大杀器 —— CATS
2017年MySQL数据库技术嘉年华 —— 有态度的技术大会
2017年MySQL数据库技术嘉年华 —— 有态度…
IMG社区MySQL技术沙龙南京站圆满结束
IMG社区MySQL技术沙龙南京站圆满结束
改朝换代:MySQL Group Replication
改朝换代:MySQL Group Replication
Oracle MySQL ACE. Author of Inside MySQL and MySQL Core Series. Great at MySQL performance tuning、troubleshooting、systems availability and scalability、capacity planning, etc.

一触即发,2017年,数据库世界的诸神之战