當多個客戶端同時連接到MySQL,用SQL語句去增刪改查數據,針對查詢場景,MySQL要保證盡可能快地返回客戶端結果。
了解了這些需求場景,我們可能會對MySQL進行如下設計:
其中,連接器管理客戶端的連接,負責管理連接、認證鑒權等;查詢緩存則是為了加速查詢,命中則直接返回結果;SQL解析器負責解析SQL翻譯為執行器識別的內容;執行器則負責從具體存儲中拿到數據并返回。
MySQL的基本架構整體也大致如此,不過要比這個要復雜很多,SQL執行、數據存儲引擎層面,還有諸多優秀的細節,比如binlog機制、InnoDB存儲引擎的鎖、事務機制等,共同成就了卓越的MySQL。