Mysql數據庫的使用總結之Innodb簡介(三)

    依然超過8萬字符,繼續寫一篇。暈~~~~~~
 
·         innodb_flush_method
         這個選項只在Unix系統上有效。若是這個選項被設置爲fdatasync (默認值),InnoDB使用fsync()來刷新數據和日誌文件。若是被設置爲O_DSYNCInnoDB使用O_SYNC來打開並刷新日誌文件,但使用fsync()來刷新數據文件。若是O_DIRECT被指定了(在一些GNU/Linux版本商可用),InnoDB使用O_DIRECT來打開數據文件,並使用fsync()來刷新數據和日誌文件。注意,InnoDB使用fsync()來替代fdatasync(),而且它默認不使用O_DSYNC,由於這個值在許多Unix變種上已經發生問題。
 
         innodb_force_recovery
    警告:這個選項僅在一個緊急狀況下被定義,當時你想要從損壞的數據庫轉儲表。可能的值爲從16。做爲一個安全措施,當這個選項值大於零之時,InnoDB阻止用戶修改數據。
 
         innodb_lock_wait_timeout
         InnoDB事務在被回滾以前能夠等待一個鎖定的超時秒數。InnoDB在它本身的鎖定表中自動檢測事務死鎖而且回滾事務。InnoDBLOCK TABLES語句注意到鎖定設置。默認值是50秒。
         爲在一個複製創建中最大可能的持久程度和連貫性,你應該在主服務器上的my.cnf文件裏使用innodb_flush_log_at_trx_commit=1sync-binlog=1
 
         innodb_locks_unsafe_for_binlog
         這個選項在InnoDB搜索和索引掃描中關閉下一鍵鎖定。這個選項的默認值是假(false)。
 
        innodb_log_arch_dir
若是咱們使用日誌檔案,被完整寫入的日誌文件所在的目錄也被歸檔。這個參數值若是被使用了,應該被設置得與innodb_log_group_home_dir同樣。儘管如此,它不是必需的。
 
         innodb_log_archive
         這個值當前被設爲0。由於MySQL使用它本身的日誌文件從備份來恢復,因此當前沒有必要來歸檔InnoDB日誌文件。這個選項的默認值是0
 
         innodb_log_buffer_size
         InnoDB用來往磁盤上的日誌文件寫操做的緩衝區的大小。明智的值是從1MB8MB。默認的是1MB。一個大的日誌緩衝容許大型事務運行而不須要在事務提交以前往磁盤寫日誌。所以,若是你有大型事務,使日誌緩衝區更大以節約磁盤I/O
 
         innodb_log_file_size
         在日誌組裏每一個日誌文件的大小。在32位計算機上日誌文件的合併大小必須少於4GB。默認是5MB。明智的值從1MBN分之一緩衝池大小,其中N是組裏日誌文件的數目。值越大,在緩衝池越少須要檢查點刷新行爲,以節約磁盤I/O。但更大的日誌文件也意味這在崩潰時恢復得更慢。
 
         innodb_log_files_in_group
         在日誌組裏日誌文件的數目。InnoDB以循環方式寫進文件。默認是2(推薦)。
 
         innodb_log_group_home_dir
         InnoDB日誌文件的目錄路徑。它必須有和innodb_log_arch_dir同樣的值。若是你不指定任何InnoDB日誌參數,默認的是在MySQL數據目錄裏建立兩個5MB大小名爲ib_logfile0ib_logfile1的文件。
 
         innodb_max_dirty_pages_pct
         這是一個範圍從0100的整數。默認是90InnoDB中的主線程試着從緩衝池寫頁面,使得髒頁(沒有被寫的頁面)的百分比不超過這個值。若是你有SUPER權限,這個百分比能夠在服務器運行時按下面來改變:
SET GLOBAL innodb_max_dirty_pages_pct = value;
 
         innodb_max_purge_lag
         這個選項控制在淨化操做被滯後之時,如何延遲INSERT, UPDATEDELETE操做。這個參數的默認值是零,意爲無延遲。這個選項能夠在運行時做爲全局系統變量而被改變。
 
         innodb_mirrored_log_groups
         咱們爲數據庫保持的日誌組內一樣拷貝的數量。當前這個值應該被設爲1
 
         innodb_open_files
         InnoDB中,這個選項僅與你使用多表空間時有關。它指定InnoDB一次能夠保持打開的.ibd文件的最大數目。最小值是10。默認值300
         .ibd文件的文件描述符是僅對InnoDB的。它們獨立於那些由--open-files-limit服務器選項指定的描述符,且不影響表緩存的操做。
 
         innodb_status_file
         這個選項讓InnoDB爲週期的SHOW INNODB STATUS輸出建立一個文件<datadir>/innodb_status.<pid>
 
         innodb_support_xa
         當被設置爲ON或者1(默認地),這個變量容許InnoDB支持在XA事務中的雙向提交。容許innodb_support_xa致使一個額外的對事務準備的磁盤刷新。若是你對使用XA並不關心,你能夠經過設置這個選項爲OFF0來禁止這個變量,以減小磁盤刷新的次數並得到更好的InnoDB性能。
 
         innodb_table_locks
         InnoDB重視LOCK TABLES,直到全部其它線程已經釋放他們全部對錶的鎖定,MySQL才從LOCK TABLE .. WRITE返回。默認值是1,這意爲LOCK TABLESInnoDB內部鎖定一個表。在使用AUTOCOMMIT=1的應用裏,InnoDB的內部表鎖定會致使死鎖。你能夠在my.cnf文件(Windows上是my.ini文件)裏設置innodb_table_locks=0 來消除這個問題。
 
         innodb_thread_concurrency
         InnoDB試着在InnoDB內保持操做系統線程的數量少於或等於這個參數給出的限制。若是有性能問題,而且SHOW INNODB STATUS顯示許多線程在等待信號,可讓線程「thrashing ,而且設置這個參數更小或更大。若是你的計算機有多個處理器和磁盤,你能夠試着這個值更大以更好地利用計算機的資源。一個推薦的值是系統上處理器和磁盤的個數之和。值爲500或比500大會禁止調用併發檢查。默認值是20,而且若是設置大於或等於20,併發檢查將被禁止。
 
         innodb_status_file
         這個選項讓InnoDB爲週期的SHOW INNODB STATUS輸出建立一個文件<datadir>/innodb_status.<pid>
相關文章
相關標籤/搜索