1. 程式人生 > 實用技巧 >MySQL實戰45講筆記一

MySQL實戰45講筆記一

MySQL的基本架構大體可以分為server層和儲存引擎層,邏輯架構圖如下:

Server層除了圖中顯示的,還包括所有的內建函式(包括日期、時間、數學和加密函式等),儲存過程、觸發器、檢視等跨儲存引擎的功能都在這層實現。

儲存引擎層負責資料的儲存和提取,支援InnoDB、MyISAM、Memory等,從MySQL 5.5.5版本開始InnoDB成為預設的儲存引擎。

  • 聯結器

    聯結器負責跟客戶端建立連線、獲取許可權、維持和管理連線。資料庫裡面的連線分為長連線和端連線,和tcp的連線類似。長連線過多會佔用記憶體太大,從而出現OOM。可以考慮定期斷開長連線,尤其是執行過一個佔用記憶體的大查詢;5.7版本以後可以執行 myssql_reset_connection來重新初始化連線資源。

  • 查詢快取

    執行查詢語句時,如果之前執行過那麼語句和結果可能會以key(語句)-value(結果)直接快取在記憶體中。

    不建議使用查詢快取,因為只要有一個表更新,那麼這張表上所有查詢快取都會被清空。8.0版本後刪除了此功能。

  • 分析器

    分析器對SQL語句做解析,先做詞法分析,例如‘“select”-->查詢語句;再做語法分析。

  • 優化器

    表裡多個索引決定用哪個或者關聯查詢時決定表的連線順序

  • 執行器

    • 先判斷使用者對錶T有沒有執行許可權,沒有則返回錯誤

    • 有就呼叫指定引擎提供的介面,一行一行遍歷表,將所有滿足條件的行組成的記錄集作為結果返回給客戶端