![阿里云数字新基建系列:云数据库架构](https://wfqqreader-1252317822.image.myqcloud.com/cover/967/43737967/b_43737967.jpg)
上QQ阅读APP看本书,新人免费读10天
设备和账号都新为新人
1.1 RDS for MySQL
MySQL的内核框架,在经典数据库抽象模型上基本改动不大,但由于历史原因,MySQL被迫拆分成上下两层,即服务层(Server Layer)和InnoDB存储引擎层(Storage Engine Layer)。在很多MySQL图书或资料里,对相关历史原因都有介绍,这里就不做介绍了。最终,支持事务(Transaction)的InnoDB存储引擎成为MySQL的绝对主力引擎。
RDS for MySQL主要使用的是AliSQL内核,根据云上业务和我们的实践经验,对很多MySQL行为做了优化和调整。但对总的结构没有做大的调整,基本如图1-2所示。
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-18-1.jpg?sign=1739530510-T6ZQwVk0AQgQ7xePtfRy3vvaqGUCNVIr-0-f1a1b5ece495b295aceab96b6f849239)
图1-2 MySQL的内核结构
可能有很多词,比如Mini-Transaction(MTR),读者是第一次遇到。有数据库基础的读者都知道事务的相关原理,事务的相关实现则需要底层MTR来支持。为了方便读者理解MySQL的内核结构,我们以一条SQL请求为例,展示SQL语句在MySQL内的执行全过程。首先从MySQL服务层讲起。
说明
想了解MySQL服务层,则不可避免地要找到一个合适的入口函数,因为MySQL的代码跳跃性很强,不经意间,就容易跑偏。要找到合适的入口函数,有以下几种方式。
(1)打开MySQL Profiling,会显示各主要阶段的代码文件和行数。
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-19-1.jpg?sign=1739530510-F7MY36JpkNzX7CrctpcLuWZfYeVXyuQ0-0-7c0448b1eacf8d7f56cc4a6e39898476)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-20-1.jpg?sign=1739530510-cus3DJ31ka0xx8mPjs7zLIFERNKIfZi6-0-b13eab72ae78866679162d24f04aaccd)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-21-1.jpg?sign=1739530510-LbPmmBxSuygjXhWjvJ3kbE8eHADAe0Hn-0-df9543ccad8fd3674b66825e2a360824)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-22-1.jpg?sign=1739530510-x6zZIYg2g5qQGoahMk8CBD5zsCkKmn15-0-724099b73bc8bf5762708c7b270401eb)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-23-1.jpg?sign=1739530510-V2136Ua1Yi4Es5Y6OLS6H8U8SSXBE2w4-0-6286c9979118e3d7626210171bb91e1f)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-24-1.jpg?sign=1739530510-AQDBMakZbxZmlViSTeSgaxQZID5l39ON-0-bb9804e0768012aab4da0fcd29f21e67)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-25-1.jpg?sign=1739530510-pMq4dcd465IeUiXqz0KuUh8wLTBFoLko-0-27f6553d1698c47a6bd1630937e33570)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-26-1.jpg?sign=1739530510-QGQejET7vJRIqzlHbQ3S7E0PUercDuE9-0-1b54cfb81c2f828608f4252a43b5b7f4)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-27-1.jpg?sign=1739530510-IlYY4iZBv46mLpHC5OVC5LJNuLMUSdHX-0-cb4079f0f3ca910af21ccf74d1f0f48a)
(2)使用调试工具,打断点,也会显示相对应的函数。
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-27-2.jpg?sign=1739530510-qLR1so5UcdMiuLrodLUiWJ4ixfrAIs7F-0-99bf8a920c4c3fa6ea8f88775bca43ab)
(3)使用常用的入口函数,比如dispatch_command。