MySQL技術內幕-InnoDB儲存引擎-讀書筆記(一),mysql-innodb

來源:互聯網
上載者:User

MySQL技術內幕-InnoDB儲存引擎-讀書筆記(一),mysql-innodb
MySQL技術內幕-InnoDB儲存引擎-讀書筆記(一)

作為php開發,使用mysql總是少不了的


部落格連結 http://itsong.net/articles/466.html

第一章 MySQL體繫結構和儲存引擎
  • MySQL被設計為一個單進程多線程架構的資料庫
  • ./mysql --help | grep my.cnf 可以查看mysql資料庫執行個體啟動時,它會在哪些位置尋找設定檔。
  • 設定檔中有一個datadir參數,指定了資料庫所在的路徑。預設為/usr/local/mysql/data
  • 體繫結構,mysql由以下幾部分組成:串連池組件,管理服務和工具組件,sql介面組件,查詢分析器組件,最佳化器組件,緩衝cache組件,外掛程式式儲存引擎,物理檔案。
  • InnoDB儲存引擎,支援事務,行鎖,支援外鍵,預設讀操作不產生鎖
  • MyISAM儲存引擎,不支援事務,表鎖,全文索引
  • unix域通訊端訪問mysql,-S /tmp/mysql.sock
第二章 InnoDB儲存引擎
  • 後台線程有7個,4個IO,1個master thread,一個鎖監控線程,1個錯誤監控線程。master thread幾乎實現了所有功能。
  • 4個IO線程為,insert buffer thread,log thread,read thread,write thread。
  • 引擎記憶體分為:緩衝池buffer pool(最大),重做日誌緩衝池redo log buffer,以及額外的記憶體池additional memory pool。
  • 按頁(每頁16K)讀到緩衝池,LRU演算法保留快取資料。先改緩衝池中的頁-髒頁,再按一定頻率將髒頁重新整理flush到檔案show engine innodb status可以看緩衝池具體使用方式。
  • 緩衝池緩衝的資料頁類型有:索引頁,資料頁,undo頁,插入緩衝,自適應雜湊索引,innodb儲存的鎖資訊,資料字典資訊等。索引頁和資料頁最大。
  • 日誌緩衝將重做日誌資訊先放入這個緩衝區,按一定頻率重新整理到重做記錄檔。
  • master thread線程優先順序最高,分為幾個迴圈:主迴圈,後台迴圈,重新整理迴圈,暫停迴圈。
  • 主迴圈,每秒一次的操作包括日誌緩衝刷到磁碟,即使事務沒提交(所以大事務也很快),合并插入緩衝(可能),至多重新整理100個innodb緩衝池中的髒頁到磁碟(可能),如果沒有使用者活動,切換到後台迴圈(可能)。
  • 合并插入緩衝並不是每秒都發生,判斷當前一秒內io次數是否小於5次,io壓力小則執行合并插入緩衝。
  • 緩衝池中髒頁比例大於90%,做磁碟同步操作,將100個髒頁寫入磁碟
  • 主迴圈,每10秒的操作,重新整理100個髒頁到磁碟(可能),合并至多5個插入緩衝(總是),將日誌緩衝重新整理到磁碟(總是),刪除無用的undo頁(總是),重新整理100個或者10個髒頁到磁碟(總是),產生一個檢查點(總是)。
  • 判斷過去10秒磁碟io是否小於200次,ok則刷100個髒頁到磁碟。
  • 看髒頁比例,超過70%,重新整理100個髒頁,如果小於70%,重新整理10個髒頁。
  • 後台迴圈,刪除無用的undo頁(總是),合并20個插入緩衝(總是),跳回到主迴圈(總是),不斷重新整理100個頁,直到符合條件。
  • 調整innodb_max_dirty_pages_pct可以加快重新整理髒頁的頻率,保證磁碟io的負載,比如75-80
  • 關鍵特性:插入緩衝,兩次寫double write,自適應雜湊索引adaptive hash index。
  • 插入緩衝的使用需要滿足兩個條件:索引是輔助索引,索引不是唯一的。

相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.