缓冲池Buffer Pool
生活随笔
收集整理的這篇文章主要介紹了
缓冲池Buffer Pool
小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
首先,InnnoDB 的數(shù)據(jù)都是放在磁盤上的,InnoDB 操作數(shù)據(jù)有一個最小的邏輯單位,叫做頁(索引頁和數(shù)據(jù)頁)。我們對于數(shù)據(jù)的操作,不是每次都直接操作磁盤,因為磁盤的速度太慢了。InnoDB 使用了一種緩沖池的技術(shù),也就是把磁盤讀到的頁放到一塊內(nèi)存區(qū)域里面。這個內(nèi)存區(qū)域就叫Buffer Pool。
下一次讀取相同的頁,先判斷是不是在緩沖池里面,如果是,就直接讀取,不用再次訪問磁盤。
修改數(shù)據(jù)的時候,先修改緩沖池里面的頁。內(nèi)存的數(shù)據(jù)頁和磁盤數(shù)據(jù)不一致的時候,我們把它叫做臟頁。InnoDB 里面有專門的后臺線程把Buffer Pool 的數(shù)據(jù)寫入到磁盤,每隔一段時間就一次性地把多個修改寫入磁盤,這個動作就叫做刷臟
Buffer Pool 是InnoDB 里面非常重要的一個結(jié)構(gòu),它的內(nèi)部又分成幾塊區(qū)域。這里我們趁機(jī)到官網(wǎng)來認(rèn)識一下InnoDB 的內(nèi)存結(jié)構(gòu)和磁盤結(jié)構(gòu)。
?
總結(jié)
以上是生活随笔為你收集整理的缓冲池Buffer Pool的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 一条更新SQL 是如何执行的?
- 下一篇: 索引是什么?