首頁  >  文章  >  資料庫  >  詳細介紹MySQL快取分類與配置

詳細介紹MySQL快取分類與配置

迷茫
迷茫原創
2017-03-26 11:31:171283瀏覽

MySQL快取分類

  InnoDB緩衝池
  InnoDB日誌檔案與MyIsAM資料的作業系統查詢快取
  MyIsAMAM快取
   快取設定##   MyIsAM鍵快取
  ,二進位日誌,表定義檔案的作業系統快取
  其它緩存,通常不需要太多內存

InnoDB緩衝池
  作用:
    1.緩存的物件包括:資料行,索引,插入緩衝,鎖,以及內部資料結構。
    2.利用緩衝池來版主延遲寫入,可以合併多次寫入,順序寫會(儲存裝置)
  相關參數:
    查詢InnoDB緩衝池的大小,單位是位元組
    show variables like 'innodb_buffer_pool_size';
    innodb_max_dirty_pages_pct變數影響髒頁的數量,
_   。 show variables like 'innodb_max_dirty_pages_pct'
    當臟頁超過innodb_max_dirty_pages_pct指定的百分比之後,後台當線程啟動(快速刷寫模式)將髒頁刷寫入磁碟
    MySQL內存不足時,有一個類似於sqlserver的lazywrite的後台線程定時將髒頁刷新入磁盤,
   並且清理髒頁佔用的記憶體空間,給其他資料(需要載入記憶體的資料)使用。
    當交易日誌沒有空間的時候,InnoDB將進入激烈刷寫模式,大日誌可以提升效能的原因(?)
  預熱緩衝區:
    可以理解成資料庫啟動的時候將資料從磁碟載入到快取區中,以提升資料的存取效能
    兩種預熱緩衝區的方法
    1.Percina Server
    2.Init_file設置,也即啟動後將指定,即啟動後的sql sql語句中指定的資料寫入緩衝區

 

MyisAM鍵快取(key caches)

  作用:
    MyisAM鍵緩存又稱鍵緩衝,MyisAM表只快取不快取數據,MyisAM鍵快取就是快取的索引
  相關參數:
    預設只有一個MyisAM鍵快取(池)
    設定選項_buffer_size#uffer##     組_uffer_buffer_s_
    組合選項時_必要設定的比索引更大
    或不超過作業系統快取保留總記憶體的25%-50%
    設定時參考索引欄位的大小:select sum(index_length) from information_schema.`TABLES`
mysql預設回將所有索引都換粗在預設鍵快取中,
    每個MyisAM鍵快取(池)有指定的大小,可以建多個key_buffer_size來快取索引
    配置方法,在設定檔中加入
    key_buffer_1.key_buffer_size = 1G
    key_buffer_2.key_buffer_size = 1G
      共有一個指定的一個鍵數,共有一個編號# 1_ 7] 共有到編號   快取表的索引到指定緩衝區:cache index t1,t2 in key_buffer_1
    或在init_file中配置
    LODA INDEX INTO CACHE t1,t2(被分配在預設緩衝區)#  快取使用率(1 key_buffer_unused*key_cache_block_size)*100/key_buffer_size)
  其它:
    1.MyisAM使用操作系統內存來緩存數據,數據往往比索引留要大,因此要預存更多的內存緩存數據鍵緩存
    2.即使沒有使用MyisAM表,依舊要設定key_buffer_size為一個較小的值(例如32M),mysql伺服器可能在內部使用MyisAM表

執行緒快取
#」作用:# 作用:
    當有新的連接創建時,可以直接使用緩存中緩存的線程,以提高連接請求的效率
  個連線建立新的執行緒
  消費方式:
    新進來的連線從快取中佔用一個處於快取狀態的執行緒(被佔用後從快取中刪除),
    當連線關閉後,如果快取中刪除),
    當連線關閉後,如果快取中刪除),
    當連線關閉後,如果快取中刪除),
     當連線關閉後,如果快取中刪除)還有空間的話,將目前執行緒歸還到快取執行緒中,如果快取執行緒沒有空間,則銷毀這個執行緒
  相關參數:
    thread_cache_size指定了快取中可保存的執行緒的個數
    每個每個位元    。執行緒佔用的記憶體空間為256kb左右,
    除非有非常高的並發訪問,否則不應該,一般不需要配置這個值
    單位是緩存的線程的個數##ache_      單位是緩存的線程的個數##ache_ache_sizes_ache_pache_sft
    每個執行緒佔用的記憶體空間為256kb左右,

表緩存
  作用:
    主要是跟MyisAM表有關,緩存的是表的.frm解析結果和一些其他數據,
    緩存之後就提高訪問表的效率。對於MyIsAM表,表格快取之後可以避免修改MyisAM頭檔來標記表正在被使用
    show variables like '%table_open_cache%';

InnoDB 資料字典表
快取 作用:快取  InnoDB的表定義訊息,
    每當打開一張InnoDB表的時候,就會緩存這個表的定義到資料字典,但是表關閉後並不會從快取中移除

#

以上是詳細介紹MySQL快取分類與配置的詳細內容。更多資訊請關注PHP中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn