Mysql1體系結構與儲存引擎簡讀
阿新 • • 發佈:2018-11-23
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自適應雜湊索引