啓動MySQL
1、初始化模塊執行&&存儲引擎初期化執行
2、1中執行完成後 ---->連接管理模塊接手
3、連接管理模塊啓動處理客戶端連接請求的監聽程序(tcp/ip 網絡監聽、unix 的socket)
4、啓動完成、準備接收請求
客戶端連接
5、監聽到客戶端的連接請求(運用網絡交互模塊中相關功能)---->通過Client & Server 交互協議模塊協議----通訊匹配---->
6、連接管理模塊----請求轉發---->線程管理模塊----控制轉交---->連接線程模塊
7、連接線程模塊----調用---->用戶模塊進行授權檢查----通過---->線程池請求線程
不通過---->返回
請求query
8、開啓日誌的情況下,日誌會同步產生
query類型請求(調用Parser(Query 解析和轉發模塊))---->(訪問控制模塊同步執行)
---->Query 解析器
---->(select 類型)調用查詢緩存模塊
---->檢查query cache 中是否已經存在
---->存在將cache 中的數據返回給連接線程模塊
---->不存在傳回query 解析器(Query 優化器模塊)
query 解析器
---->表變更管理模塊(DML 或者DDL)
---->insert 處理器
---->delete處理器
----->update 處理器
----->create 處理器
----->alter 處理器
---->表維護模塊(更新統計信息、檢測、修復和整理類的query)
---->複製模塊(複製相關的query)
---->狀態收集報告模塊(請求狀態的query)
command類型請求---->直接執行(不需要調用Parser)
9、以上執行完成---->連接線程模塊---->返回執行結果
抱怨下!CSDN排版稀爛,咋排都看不到自己想要的效果。
CSDN能不能不要去掉作者使用的 Tab 啊,害人都要用N多空格代替而且空格的顯示大小跟排版大小根本不一致!
大家理解不清楚的話,看附件的圖吧!
附上圖片: