MySQL篇|01MySQL體系結構

這是我參與更文挑戰的第27天,活動詳情查看: 更文挑戰mysql

mysql是目前各大公司通用的數據庫。不管在工做時仍是在面試,都會接觸到MySQL涉及到的相關問題。面試

優點:sql

  • 免費
  • 體積小,速度快
  • 簡單易用,維護成本低
  • 兼容性好,支持多種操做系統
  • 支持多種開發語言
  • 易擴展、集羣、高可用
  • 支持事務、MVCC、4種隔離級別等

固然,在咱們使用mysql時,會遇到各類問題:死鎖、延遲、字符集錯誤、慢查詢等等。因此,須要深刻學習其原理才能快速定位問題,解決問題。數據庫

體系結構

MySQL的體系結構圖緩存

圖片

MySQL體系結構由4部分組成安全

Client Connectors層

做用:負責處理客戶端的鏈接請求,與客戶端建立鏈接。markdown

幾乎支持全部的服務端的語言session

MySQL Server層

  • 鏈接池Connection Pool
    • 負責處理和存儲數據庫與客戶端的鏈接(一個線程管理一個鏈接)
    • 其中含有用戶認證模塊(用戶身份驗證和鑑權及安全管理)
  • 系統管理和工具集Services & Utilities
    • 提供備份恢復、安全管理、集羣管理服務和工具
  • SQL接口 SQL Interface
    • 負責接收客戶端發送的各類SQL語句,如:DML、DDL、儲存過程等
  • 解析器Parser
    • 對SQL語句進行語法解析生成解析樹
  • 查詢優化器Opyimizer
    • 根據解析樹生成執行計劃,並選擇合適的索引,而後按照執行計劃SQL語句並與各個存儲引擎交互
  • 緩存Caches
    • MySQL表緩存,記錄緩存,也包含各個存儲引擎的緩存部分,也會存儲一些權限和session級別的緩存

StorageEngines存儲引擎層

插件式的存儲引擎:任何只要定義好與MySQL Server交互的接口,任何引擎均可以訪問MySQL工具

存儲引擎包括MyISAM、InnoDB、支持歸檔的Archive 、內存Memory等post

重點儲存引擎:InnoDB、MyISAM

系統文件層

文件的物理儲存,包括通用查詢日誌、二進制日誌,數據文件,錯誤日誌,慢查詢日誌,全日誌,redo/undo日誌等

  • 錯誤日誌:

    • MySQL運行過程當中產生的錯誤信息
    • 查看錯誤日誌:show variabes like '%log_error%'
  • 通用查詢日誌:

    • MySQL運行過程當中產生的通常查詢信息
    • 查看通用查詢日誌:show variabes like '%general%'
  • 二進制日誌:

    • 記錄MySQL數據量執行插入、修改、刪除的操做,包括SQL語句執行的時間和時長

    • 恢復數據庫的數據和實現MySQL主從複製都經過二進制日誌

      show variables like '%log_bin%' //查看是否開啓二進制日誌
      show variables like '%binlog%'  // 查看二進制日誌參數
      show  binary logs // 查看日誌文件
      複製代碼
  • 慢查詢日誌

    • 記錄了SQL語句執行時間超過指定的時間(默認時間是10s)

      show variables like '%slow_query%' //查看是否開啓了慢查詢日誌
      show variables like '%long_query_time%' //查詢慢查詢設置時間
      複製代碼
  • 數據文件

    • 主要包含:db.opt文件、frm文件、MYD文件、MYI文件、ibd文件、ibdata文件、ibdata1文件、ib_logfile0和ib_logfile1文件
  • 配置文件

    • MySQL的全部配置信息
    • Unix/Linux系統是my,cnf文件,Windows系統是my.ini文件。
相關文章
相關標籤/搜索