【MySQL技術內幕+InnoDB儲存引擎】學習記錄
阿新 • • 發佈:2018-12-22
2018/11/18記錄:
花了一整週的時間看了《MySQL技術內幕+InnoDB儲存引擎》一書,本次只是對MySQL資料庫的整體有了進一步的認識,包括以下知識:
架構 的執行緒問題:主執行緒等
innodb的關鍵特性:插入緩衝、兩次寫、自適應雜湊、非同步IO、重新整理臨近頁
檔案:引數檔案、日誌檔案(error log redo log undo log等)、套接字檔案、pid檔案、表結構定義檔案、引擎檔案
表:儲存結構(段、區、頁、行)、行記錄格式、資料頁結構、約束(外來鍵索引等)、檢視、分割槽表
索引與演算法:資料結構、B+樹、聚類與輔助索引、雜湊演算法(索引)、全文檢索(索引)
鎖:innodb中的鎖(一致性(非)鎖定讀、自增長、外來鍵與鎖)、鎖的三種演算法(recorde lock 鎖單行記錄、gap lock 鎖範圍記錄、 next-key lock 前兩個相加 .可解決 幻讀 問題)、鎖的阻塞、死鎖的發生及解決(定時器 → 等待圖迴路檢測(深度優先))、鎖升級(降低細粒度鎖維護的記憶體開銷)
事務:四種特性(原子、一致、隔離、持久)、事務的實現(redo /undo /purge 刪除操作暫時只是做一個標記位/group commit redo的合併提交 )、事務的控制語句、事務的四種隔離級別(不可提交讀 髒讀 、 可提交讀 不可重複讀 、 可重複讀 幻讀 、 序列化 完美 )隔離級別是通過加鎖的方式實現的、
備份:日誌比較重要、主從庫配置
效能調優:硬體支援、RAID、linux下的基準測試工具:sysbench、mysql-tpcc
原始碼編譯及除錯:略。