mysql實戰45講學習筆記 12

2021-09-25 12:32:49 字數 781 閱讀 7452

為什麼我的mysql「抖」了一下
一條sql語句,正常執行的時候特別快,但有時會突然變得特別慢,並且隨機,持續時間短。

將對應的記憶體資料寫入到磁碟的過程,叫做flush。

當記憶體資料頁跟磁碟資料頁內容不一致的時候,我們稱這個記憶體頁為「髒頁」。

記憶體資料寫入到磁碟後,記憶體和磁碟上的資料頁就一致,稱為「乾淨頁」.

髒頁和乾淨頁都在記憶體中。

「記憶體不夠用了,要先將髒頁寫到磁碟裡」,這種情況是常態,innodb用緩衝池(buffer pool)管理記憶體,快取池中的記憶體頁有三種狀態:

1.第一種是,還沒有使用的

2.使用了並且是乾淨頁

3.使用了並且是髒頁

innodb的策略是盡量使用記憶體,因此對於乙個長時間執行的庫來說,未被使用的頁面很少。

innodb刷髒頁的控制策略

要多關注髒頁比例,不要讓他經常接近75%(可以參考如下**)

mysql> select variable_value into @a from global_status where variable_name = 『innodb_buffer_pool_pages_dirty』;

select variable_value into @b from global_status where variable_name = 『innodb_buffer_pool_pages_total』;

select @a/@b;

redo log是關係型資料庫的核心啊,保證了acid裡的d。

mysql實戰45講學習筆記 02

2.日誌系統 一條sql更新語句是如何執行的 一條查詢語句執行過程是經過聯結器,分析器,優化器,執行器等功能模組最後到達儲存引擎 查詢語句的流程,更新語句也是會同樣走一遍。更新流程還涉及兩個重要的日誌系統,redo log 重做日誌 和binlog 歸檔日誌 重要的日誌模組 redo log mys...

mysql實戰45講學習筆記 11

11 怎麼給字串欄位加索引字首索引的優勢,選取欄位前幾個作為索引,占用的空間更小 使用字首索引,定義好長度,就可以做到既節省空間,又不用額外增加太多的查詢成本。建立索引的時候關注的是區分度,區分度越高越好,區分度越高,意味著重複的鍵值越少,因此,可以通過統計索引上有多少不同的值來判斷使用多長字首。m...

mysql實戰45講學習筆記 15

15 日誌和索引相關問題1.在兩階段提交的不同瞬間,mysql如果發生異常重啟,是怎樣保證資料完整性的。如果在圖中a的地方,也就是寫入redo log處於prepare階段之後,寫binlog之前,發生了崩潰 crash 由於此時binlog還沒寫,redolog還沒提交,所以崩潰恢復的時候。事務會...