資源描述:
《mysql數(shù)據(jù)庫中遇到innodb問題的介紹分析》由會員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫。
1、Mysql數(shù)據(jù)庫中遇到Innodb問題的介紹分析?nnoDB給MySQL提供了具有事務(wù)(transaction)、回滾(rollback)和崩潰修復(fù)能力(crashrecoverycapabilities)、多版本并發(fā)控制(multi-versionedconcurrencycontrol)的事務(wù)安全(transaction-safe(ACIDcompliant))型表。InnoDB提供了行級鎖(lockingonrowlevel),提供與Oracle類似的不加鎖讀取(non-lockingreadinSELECTs)。InnoDB鎖定在行級并且也在SELECT語句提供一個Orac
2、le風(fēng)格一致的非鎖定讀。這些特色增加了多用戶部署和性能專職優(yōu)化、域名注冊、網(wǎng)站空間、虛擬主機(jī)、服務(wù)器托管、vps主機(jī)、服務(wù)器租用的中國信息港來為你詳細(xì)介紹!innodb_flush_method?????????這個選項只在Unix系統(tǒng)上有效。如果這個選項被設(shè)置為fdatasync?(默認(rèn)值),InnoDB使用fsync()來刷新數(shù)據(jù)和日志文件。如果被設(shè)置為O_DSYNC,InnoDB使用O_SYNC來打開并刷新日志文件,但使用fsync()來刷新數(shù)據(jù)文件。如果O_DIRECT被指定了(在一些GNU/Linux版本商可用),InnoDB使用O_DIRECT來打開數(shù)據(jù)文件,并使用fs
3、ync()來刷新數(shù)據(jù)和日志文件。注意,InnoDB使用fsync()來替代fdatasync(),并且它默認(rèn)不使用O_DSYNC,因為這個值在許多Unix變種上已經(jīng)發(fā)生問題。???????????innodb_force_recovery????警告:這個選項僅在一個緊急情況下被定義,當(dāng)時你想要從損壞的數(shù)據(jù)庫轉(zhuǎn)儲表??赡艿闹禐閺?到6。作為一個安全措施,當(dāng)這個選項值大于零之時,InnoDB阻止用戶修改數(shù)據(jù)。???????????innodb_lock_wait_timeout?????????InnoDB事務(wù)在被回滾之前可以等待一個鎖定的超時秒數(shù)。InnoDB在它自己的鎖定表中自動
4、檢測事務(wù)死鎖并且回滾事務(wù)。InnoDB用LOCKTABLES語句注意到鎖定設(shè)置。默認(rèn)值是50秒。?????????為在一個復(fù)制建立中最大可能的持久程度和連貫性,你應(yīng)該在主服務(wù)器上的my.cnf文件里使用innodb_flush_log_at_trx_commit=1和sync-binlog=1。???????????innodb_locks_unsafe_for_binlog?????????這個選項在InnoDB搜索和索引掃描中關(guān)閉下一鍵鎖定。這個選項的默認(rèn)值是假(false)。???????????innodb_log_arch_dir如果我們使用日志檔案,被完整寫入的日志文件
5、所在的目錄也被歸檔。這個參數(shù)值如果被使用了,應(yīng)該被設(shè)置得與innodb_log_group_home_dir一樣。盡管如此,它不是必需的。???????????innodb_log_archive?????????這個值當(dāng)前被設(shè)為0。因為MySQL使用它自己的日志文件從備份來恢復(fù),所以當(dāng)前沒有必要來歸檔InnoDB日志文件。這個選項的默認(rèn)值是0。???????????innodb_log_buffer_size?????????InnoDB用來往磁盤上的日志文件寫操作的緩沖區(qū)的大小。明智的值是從1MB到8MB。默認(rèn)的是1MB。一個大的日志緩沖允許大型事務(wù)運(yùn)行而不需要在事務(wù)提交之前往
6、磁盤寫日志。因此,如果你有大型事務(wù),使日志緩沖區(qū)更大以節(jié)約磁盤I/O。???????????innodb_log_file_size?????????在日志組里每個日志文件的大小。在32位計算機(jī)上日志文件的合并大小必須少于4GB。默認(rèn)是5MB。明智的值從1MB到N分之一緩沖池大小,其中N是組里日志文件的數(shù)目。值越大,在緩沖池越少需要檢查點(diǎn)刷新行為,以節(jié)約磁盤I/O。但更大的日志文件也意味這在崩潰時恢復(fù)得更慢。???????????innodb_log_files_in_group?????????在日志組里日志文件的數(shù)目。InnoDB以循環(huán)方式寫進(jìn)文件。默認(rèn)是2(推薦)。?????
7、??????innodb_log_group_home_dir?????????到InnoDB日志文件的目錄路徑。它必須有和innodb_log_arch_dir一樣的值。如果你不指定任何InnoDB日志參數(shù),默認(rèn)的是在MySQL數(shù)據(jù)目錄里創(chuàng)建兩個5MB大小名為ib_logfile0和ib_logfile1的文件。???????????innodb_max_dirty_pages_pct?????????這是一個范圍從0到100的整數(shù)。默認(rèn)是90。InnoDB中的主線