1. 程式人生 > >Mysql1體系結構與儲存引擎簡讀

Mysql1體系結構與儲存引擎簡讀

mysql體系結構

mysql分為mysqlServer層和儲存引擎層

Server層

連線層

  • 通訊協議
  • 主要用來檢測客戶端版本是否相容服務端
  • 執行緒處理
  • 一個連線請求都會對應一個執行緒
  • 使用者密碼驗證
  • 驗證使用者賬號和密碼連線mysql伺服器

sql層

  • 許可權判斷
  • 判斷使用者是否有權訪問某個庫某個表
  • 查詢快取
  • 解析器
  • 對sql進行解析,判斷語法是否正確
  • 預處理
  • 對上面解析不了的進行預處理操作
  • 查詢優化器
  • 對查詢語句進行優化
  • 執行計劃

儲存引擎層

InnoDB體系結構

InnoDB儲存結構

表空間

系統表空間儲存(ibdata1)

儲存結構的所有資料資訊和回滾資訊自動擴充套件大小 64M 預設大小是10m 檢視自動擴充套件大小

show variables like '%auto%';

檢視預設大小

show variables like '%innodb_data%'

獨立表空間

  • 每個表都有自己的表空間檔案 效率效能更高。

組成表空間,一個表可一個理解為一個段,一個表有四個段,是索引個數的2倍

組成段,由連續頁組成,大小固定為 1m

最小儲存單位 預設 16k

InnoDB記憶體結構

檢視記憶體引數分配

show variables like '%buffer%'; 

系統全域性區

innodb_buffer_pool

  • 快取innodb表的資料,索引等資訊

innodb_log_buffer

  • 事務的快取

key_ buffer_size

  • 只用於MyISAM

程式快取區

join_buffer_size

  • 表連線

read_buffer_size

  • 表順序掃描的快取

InnoDB特性

1插入緩衝

提高普通索引的插入效能

2兩次寫

保證寫入的安全

3自適應雜湊索引