当多个客户端同时连接到MySQL,用SQL语句去增删改查数据,针对查询场景,MySQL要保证尽可能快地返回客户端结果。
了解了这些需求场景,我们可能会对MySQL进行如下设计:
其中,连接器管理客户端的连接,负责管理连接、认证鉴权等;查询缓存则是为了加速查询,命中则直接返回结果;SQL解析器负责解析SQL翻译为执行器识别的内容;执行器则负责从具体存储中拿到数据并返回。
MySQL的基本架构整体也大致如此,不过要比这个要复杂很多,SQL执行、数据存储引擎层面,还有诸多优秀的细节,比如binlog机制、InnoDB存储引擎的锁、事务机制等,共同成就了卓越的MySQL。