![阿里云数字新基建系列:云数据库架构](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=1739305510-JT0wiL4aO8czDa1M7dJIfead1Q7pgUzd-0-81b8eb91c2b7b389a2fe9d6ffae1bfd1)
图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=1739305510-f119QSpOxbY3umawpeFHq43tniHzGTGl-0-de7fa0202e0713601abba7f8becf752d)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-20-1.jpg?sign=1739305510-KoOq9r2RjVo0kPfF8pPGuefGXOU30QJv-0-600f57566d0d7086a76e18926e3dae92)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-21-1.jpg?sign=1739305510-qrWEB8BdM0NXONH8jnQDkLV6w6G8uvFR-0-3a19193430f198a7430b436d8de2052c)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-22-1.jpg?sign=1739305510-tL6rNBi9CT2RNrHWIgOodZkoaTLMNJ1T-0-9cfb10f9ec22a118faba1a1b32958ba2)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-23-1.jpg?sign=1739305510-5iBZ2TcHLoEee1CrWOrpCivYt2doiOm0-0-bb3f94be208143b994f72625306fbe6c)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-24-1.jpg?sign=1739305510-Hd1uuKrfnbQCODaRiA1jsdUQS9GOjZrA-0-7b3600f2d63fb8225ee8f8a4047bfbdc)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-25-1.jpg?sign=1739305510-prVl1I3l8174kV1r2dBJFh32GnHIyv4r-0-8512665cc664d461ace3bf26c9b64f16)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-26-1.jpg?sign=1739305510-zWVBByzadsaRWNwAOnARUlyI1j5okj8X-0-03f322871d0ae365f818581ecdbbbfec)
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-27-1.jpg?sign=1739305510-wrIOjiolIZvwPBnPg1zok3Aviaitv8L6-0-ead71cd113d6991709e32d9f93f217a4)
(2)使用调试工具,打断点,也会显示相对应的函数。
![](https://epubservercos.yuewen.com/2DE8B5/23020636209728806/epubprivate/OEBPS/Images/42119-00-27-2.jpg?sign=1739305510-wQ5bIbaLXCDkIIIy3ot3EO5Py9F9RMfW-0-47c9a5d48c3fa5dfcf6b5cd786b6f9be)
(3)使用常用的入口函数,比如dispatch_command。