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鍵緩存又稱鍵緩衝,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中文網其他相關文章!