innodb分配記憶體

2022-03-10 22:13:45 字數 683 閱讀 9001

innodb分配記憶體有三種方法

1)使用os的malloc

2)使用innodb自己實現的記憶體分配方法

3)使用goolge的tmalloc

在my.cn配置檔案中可設定

#innodb是使用自帶的記憶體分配程式, 

#還是使用當前部署的作業系統中現有的更高效的記憶體分配程式 

#預設設定值為1, 

#設定為0:表示innodb使用自帶的記憶體分配程式。

#設定為1:表示innodb使用作業系統的記憶體分配程式。

innodb自己實現的記憶體管理分三部分

1)基礎記憶體管理

ut_mem_block_t 結構體

2)夥伴分配器

3) 記憶體分配堆heap

innobase_start_or_create_for_mysql

srv_boot

srv_general_init

mem_init

mem_pool_create 分配一大塊記憶體,並初始化buddy

ut_malloc_low 分配記憶體

INNODB記憶體結構

innodb記憶體結構如下圖 innodb高速緩衝對innodb很重要 innodb不依賴os,而自己快取了所有資料,包括索引資料,行資料,等等,這點跟myisam有差別 myisam的資料依靠os的pagecache進行快取 應該把它設定大一些,建議設定為可用ram的50 80 查詢或更新需要對i...

InnoDB記憶體優化

1 innodb buffer pool size innodb buffer pool size 的值越大,快取命中率越高,訪問 innodb 表需要的磁碟 i o 就越少,效能也就越高。在乙個專用的資料庫伺服器上可以將 80 的物理記憶體分配給 innodb buffer pool 需要注意避免...

記憶體分配 Go記憶體管理 記憶體分配一

go作為乙個比較新晚 新 的語言,自然借鑑前輩們的優點,比如說語言本身負責記憶體管理 對協程和高併發的高優支援 簡單高效的語法等。本篇及後續的幾篇要講的就是還沒提到的比較複雜的記憶體管理。學習記憶體管理 分配 前,如果有jvm的記憶體管理的基礎,會變得非常簡單,如果是第一次接觸記憶體管理,在看完go...