Mysql 查詢流程及相關組件

學習Mysql實戰45講總結

1.基本執行流程相關組件

image.png

2.相關組件說明

2.1 連接器

(1)訪問數據庫,需要ip+端口+密碼走tcp 協議進行連接

(2)連接器進行密碼相關權限驗證

(3)建立連接,長連接或短連接,由wait_timeout 參數控制

 Q1長短連接區別

短連接時間短,查詢幾次就斷開了,頻繁的斷開重連效率極低,故大多數時間選擇長連接。長連接一致保持與客戶端連接,時間很長。

Q2那全部使用長連接不就好了?

長連接長時間不斷開會導致緩存越來越多,每次查詢,之前操作引起的相關緩存一直存在,導致OOM.

解決方案:1.採用定期斷開 2.採用mysql5.7 版本,mysql_reset_connection可以保持連接又還原到初始狀態

2.2查詢緩存

緩存機制

上次的查詢結果會進行緩存,下次查詢的時候,會判斷去緩存中查詢

不建議使用原因

更新一次相關緩存都要清楚,無法保證insert update 的情況下,緩存使用弊大於利

使用方式

(1)關閉緩存 設置query_cache_type DEMAND

(2)指定查詢使用緩存 select SQL_CACHE * from t where a=1;

補充:

8.0版本以後查詢緩存從mysql中移除了

2.3分析器

語法 ,語義分析 ,判斷是不是寫錯了,查錯了,有沒有符合SQL語法的規範(規範檢查),有沒有當前庫的當前表當前字段(現有情況檢查)

2.4優化器

選擇執行方案,最優的索引選擇

2.5執行器

進行執行方案執行,執行前會校驗有沒有相關權限(因爲像存儲計劃等sql 在這個階段纔會發現沒有讀取查詢權限)

2.6存儲引擎

底層內存及算法,提供讀寫接口

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章