MySQL InnoDB常見引數詳解
一、檔案(資料檔案、日誌檔案)
1、相關引數:
innodb_data_home_dir
innodb_data_file_path=file_name:file_size[:autoextend[:max:max_file_size]]
注:
a、innodb_data_file_path的值應該為一個或多個 資料檔案規格的列表。如果命名一個以上的資料檔案,用 分號(‘;’)分隔它們
b、autoextend屬性和後面跟著的屬性只可被用來對innodb_data_file_path行裡最後一個資料檔案。
c、InnoDB不建立目錄,所以在啟動伺服器之前請確認/ibdata目錄的確存在
d、如果沒有指定innodb_data_home_dir,則預設為mysql資料目錄
e、如果你指定innodb_data_home_dir為一個空字串,你可以為列在innodb_data_file_path值裡的資料檔案指定絕對路徑。
[mysqld]
innodb_data_home_dir =
innodb_data_file_path=/ibdata/ibdata1:50M;/ibdata/ibdata2:50M:autoextend
二、引數
1、innodb_autoextend_increment(動態,預設為8M)
當自動擴充套件表空間被填滿之時,為擴充套件而增加的尺寸(MB為單位)。
2、innodb_fast_shutdown(動態,預設為1)
0:在關閉之前做一個完全淨化、插入緩衝合併和刷髒頁,最慢,但重啟最快
1:InnoDB在關閉之時跳過purge和insert buffer merge,只刷髒頁
2:重新整理日誌並強制關閉,類似crash,資料不會丟,但在啟動時會做一次崩潰恢復
mysql在關閉的時候進行的操作:
1、purge all:刪除無用的undo頁
2、merge insert buffer
3、flush dirty page
3、innodb_flush_log_at_trx_commit(動態,預設為1)
0:最快,日誌緩衝按預設每秒一次地刷到磁碟,但在事務提交時不做操作,mysql崩潰時會丟失最後一秒的事務
1:最安全,日誌緩衝按預設每秒一次地刷到磁碟,並在事務提交時重新整理到日誌檔案,同時呼叫fsync重新整理到磁碟
2:折中,日誌緩衝按預設每秒一次地刷到磁碟,並在事務提交時重新整理到日誌檔案,但不呼叫fsync,只有在系統崩潰時才會丟失最後一秒的事務
4、innodb_force_recovery(靜態,預設為0),用於從損壞的DB轉儲資料
0:表示當需要恢復時執行所有的恢復操作(即校驗資料頁/purge undo/insert buffer merge/rolling back&forward).當不能進行有效的恢復操作時,mysql有可能無法啟動,並記錄下錯誤日誌.
1.(SRV_FORCE_IGNORE_CORRUPT): 忽略檢查到的corrupt頁.
2.(SRV_FORCE_NO_BACKGROUND): 阻止主執行緒的執行,如主執行緒需要執行full purge操作,會導致crash.
3.(SRV_FORCE_NO_TRX_UNDO): 不執行事務回滾操作.
4.(SRV_FORCE_NO_IBUF_MERGE): 不執行插入緩衝的合併操作.
5.(SRV_FORCE_NO_UNDO_LOG_SCAN): 不檢視重做日誌,InnoDB儲存引擎會將未提交的事務視為已提交.
6.(SRV_FORCE_NO_LOG_REDO): 不執行前滾的操作.
當設定引數值大於0後,可以對錶進行select、create、drop操作,但insert、update、delete這類操作是不允許的
5、innodb_lock_wait_timeout
InnoDB事務在回滾之前可以等待一個鎖定的秒數
6、innodb_max_dirty_pages_pct
InnoDB中的主執行緒試著從緩衝池寫頁面,使得髒頁的百分比不超過這個值。
在show innodb status的log段中,可以檢視Last checkpoint at與Log flushed up to的距離判斷當前髒頁的情況
在BUFFER POOL AND MEMORY中,檢視Modified db pages與Buffer pool size的比例關係,該值約等於innodb_max_dirty_pages_pct
show innodb status\G;
LOG
---
Log sequence number 16 881655880
Log flushed up to 16 881649862
Last checkpoint at 16 546135914
可以看到檢查點與log sequence number,Log flushed up to都有相當大的差距。
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 19338953832; in additional pool allocated 13600768
Buffer pool size 1048576
Free buffers 17666
Database pages 1009478
Modified db pages 204553
修改的頁佔到整個資料庫buffer pool頁將近20%,大小為204553*16k/1024=3.196G
7、innodb_max_purge_lag
8、innodb_mirrored_log_groups(預設為1,沒有映象)
為資料庫保持的日誌組內同樣複製的數量。
9、innodb_open_files
在InnoDB中,這個選項僅與你使用多表空間時有關。它指定InnoDB一次可以保持開啟的.ibd檔案的最大數目。最小值是10。 預設值300。
對.ibd檔案的檔案描述符是僅對InnoDB的。它們獨立於那些由--open-files-limit伺服器選項指定的描述符,且不影響表快取的操作。
innodb_thread_concurrency
InnoDB試著在InnoDB內保持作業系統執行緒的數量少於或等於這個引數給出的限制。如果有效能問題,並
且SHOW INNODB STATUS顯示許多執行緒在等待訊號,可以讓執行緒“thrashing” ,並且設定這個引數更小或更
大。如果你的計算機有多個處理器和磁碟,你可以試著這個值更大以更好地利用計算機的資源。一個推薦的值
是系統上處理器和磁碟的個數之和。值為500或比500大會禁止 呼叫併發檢查。預設值是20,並且如果設定大
於或等於20,併發檢查將被禁止。
· innodb_status_file
這個選項讓InnoDB為週期的SHOW INNODB STATUS輸出建立一個檔案/innodb_status.
1、相關引數:
innodb_data_home_dir
innodb_data_file_path=file_name:file_size[:autoextend[:max:max_file_size]]
注:
a、innodb_data_file_path的值應該為一個或多個 資料檔案規格的列表。如果命名一個以上的資料檔案,用 分號(‘;’)分隔它們
b、autoextend屬性和後面跟著的屬性只可被用來對innodb_data_file_path行裡最後一個資料檔案。
c、InnoDB不建立目錄,所以在啟動伺服器之前請確認/ibdata目錄的確存在
d、如果沒有指定innodb_data_home_dir,則預設為mysql資料目錄
e、如果你指定innodb_data_home_dir為一個空字串,你可以為列在innodb_data_file_path值裡的資料檔案指定絕對路徑。
[mysqld]
innodb_data_home_dir =
innodb_data_file_path=/ibdata/ibdata1:50M;/ibdata/ibdata2:50M:autoextend
二、引數
1、innodb_autoextend_increment(動態,預設為8M)
當自動擴充套件表空間被填滿之時,為擴充套件而增加的尺寸(MB為單位)。
2、innodb_fast_shutdown(動態,預設為1)
0:在關閉之前做一個完全淨化、插入緩衝合併和刷髒頁,最慢,但重啟最快
1:InnoDB在關閉之時跳過purge和insert buffer merge,只刷髒頁
2:重新整理日誌並強制關閉,類似crash,資料不會丟,但在啟動時會做一次崩潰恢復
mysql在關閉的時候進行的操作:
1、purge all:刪除無用的undo頁
2、merge insert buffer
3、flush dirty page
3、innodb_flush_log_at_trx_commit(動態,預設為1)
0:最快,日誌緩衝按預設每秒一次地刷到磁碟,但在事務提交時不做操作,mysql崩潰時會丟失最後一秒的事務
1:最安全,日誌緩衝按預設每秒一次地刷到磁碟,並在事務提交時重新整理到日誌檔案,同時呼叫fsync重新整理到磁碟
2:折中,日誌緩衝按預設每秒一次地刷到磁碟,並在事務提交時重新整理到日誌檔案,但不呼叫fsync,只有在系統崩潰時才會丟失最後一秒的事務
4、innodb_force_recovery(靜態,預設為0),用於從損壞的DB轉儲資料
0:表示當需要恢復時執行所有的恢復操作(即校驗資料頁/purge undo/insert buffer merge/rolling back&forward).當不能進行有效的恢復操作時,mysql有可能無法啟動,並記錄下錯誤日誌.
1.(SRV_FORCE_IGNORE_CORRUPT): 忽略檢查到的corrupt頁.
2.(SRV_FORCE_NO_BACKGROUND): 阻止主執行緒的執行,如主執行緒需要執行full purge操作,會導致crash.
3.(SRV_FORCE_NO_TRX_UNDO): 不執行事務回滾操作.
4.(SRV_FORCE_NO_IBUF_MERGE): 不執行插入緩衝的合併操作.
5.(SRV_FORCE_NO_UNDO_LOG_SCAN): 不檢視重做日誌,InnoDB儲存引擎會將未提交的事務視為已提交.
6.(SRV_FORCE_NO_LOG_REDO): 不執行前滾的操作.
當設定引數值大於0後,可以對錶進行select、create、drop操作,但insert、update、delete這類操作是不允許的
5、innodb_lock_wait_timeout
InnoDB事務在回滾之前可以等待一個鎖定的秒數
6、innodb_max_dirty_pages_pct
InnoDB中的主執行緒試著從緩衝池寫頁面,使得髒頁的百分比不超過這個值。
在show innodb status的log段中,可以檢視Last checkpoint at與Log flushed up to的距離判斷當前髒頁的情況
在BUFFER POOL AND MEMORY中,檢視Modified db pages與Buffer pool size的比例關係,該值約等於innodb_max_dirty_pages_pct
show innodb status\G;
LOG
---
Log sequence number 16 881655880
Log flushed up to 16 881649862
Last checkpoint at 16 546135914
可以看到檢查點與log sequence number,Log flushed up to都有相當大的差距。
----------------------
BUFFER POOL AND MEMORY
----------------------
Total memory allocated 19338953832; in additional pool allocated 13600768
Buffer pool size 1048576
Free buffers 17666
Database pages 1009478
Modified db pages 204553
修改的頁佔到整個資料庫buffer pool頁將近20%,大小為204553*16k/1024=3.196G
7、innodb_max_purge_lag
8、innodb_mirrored_log_groups(預設為1,沒有映象)
為資料庫保持的日誌組內同樣複製的數量。
9、innodb_open_files
在InnoDB中,這個選項僅與你使用多表空間時有關。它指定InnoDB一次可以保持開啟的.ibd檔案的最大數目。最小值是10。 預設值300。
對.ibd檔案的檔案描述符是僅對InnoDB的。它們獨立於那些由--open-files-limit伺服器選項指定的描述符,且不影響表快取的操作。
innodb_thread_concurrency
InnoDB試著在InnoDB內保持作業系統執行緒的數量少於或等於這個引數給出的限制。如果有效能問題,並
且SHOW INNODB STATUS顯示許多執行緒在等待訊號,可以讓執行緒“thrashing” ,並且設定這個引數更小或更
大。如果你的計算機有多個處理器和磁碟,你可以試著這個值更大以更好地利用計算機的資源。一個推薦的值
是系統上處理器和磁碟的個數之和。值為500或比500大會禁止 呼叫併發檢查。預設值是20,並且如果設定大
於或等於20,併發檢查將被禁止。
· innodb_status_file
這個選項讓InnoDB為週期的SHOW INNODB STATUS輸出建立一個檔案/innodb_status.
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2126748/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- MySQL自增鎖模式innodb_autoinc_lock_mode引數詳解MySql模式
- MySQL常見的配置引數概覽MySql
- MySQL:Innodb Handler_read_*引數解釋MySql
- Mysql配置引數詳解(一)MySql
- mysql innodb相關引數說明MySql
- 【MYSQL】my.cnf引數詳解MySql
- nginx 常見引數以及重定向引數配置Nginx
- JVM常見引數設定JVM
- MySQL show engine innodb status 詳解MySql
- MySQL的InnoDB索引原理詳解MySql索引
- 【Mysql】show engine innodb status詳解MySql
- MySQL中innodb_file_per_table引數MySql
- MYSQL INNODB innodb_thread_concurrency相關引數理解MySqlthread
- MySQL relay log 詳細引數解釋MySql
- MySQL查詢快取引數詳解MySql快取
- mysql5.6主從引數詳解MySql
- mysqldump 引數詳解(基於MySQL 5.6)MySql
- MySQL配置檔案mysql.ini引數詳解MySql
- MySQL修復壞塊引數innodb_force_recovery的解釋MySql
- mysql innodb_log_file_size 和innodb_log_buffer_size引數MySql
- oracle 常見初始化引數Oracle
- MySQL資料庫innodb_fast_shutdown引數MySql資料庫AST
- 怎樣看電腦顯示器的各種引數?常見的電腦顯示器引數詳解
- MySQL8.0新增配置引數詳解MySql
- mysql編譯引數詳解(./configure)MySql編譯
- MySQL:Innodb:innodb_flush_log_at_trx_commit引數影響的位置MySqlMIT
- Mysql優化系列(1)--Innodb重要引數優化MySql優化
- mysql效能引數innodb_flush_log_at_trx_commitMySqlMIT
- 詳解 MySql InnoDB 中意向鎖的作用MySql
- HTML常見標籤詳解HTML
- 常見sql注入原理詳解!SQL
- MySQL效能引數詳解 - max_connect_errorsMySqlError
- MySQL配置檔案mysql.ini引數詳解、MySQL效能優化MySql優化
- ajax 引數詳解
- DockerFile引數詳解Docker
- dd引數詳解
- Mysqldump引數詳解MySql
- vmstat 引數詳解