資源描述:
《mysql之innodb存儲(chǔ)引擎》由會(huì)員上傳分享,免費(fèi)在線閱讀,更多相關(guān)內(nèi)容在行業(yè)資料-天天文庫(kù)。
1、InnoDB存儲(chǔ)引擎·遵循ACID,支持commit,rollback和故障恢復(fù),是事務(wù)安全的·行級(jí)鎖定,Oracle-style讀一致性改善了多用戶并發(fā)操作性能·支持FOREIGNKEY參照完整性·輕松地與其他存儲(chǔ)引擎表組合,例如與MEMORY表的JOINInnoDB在內(nèi)存中維持著自己的緩沖區(qū),用來(lái)緩存數(shù)據(jù)和索引。InnoDB的數(shù)據(jù)和索引存放在表空間中,表空間可以是共享的,也可以是獨(dú)享的。獨(dú)享表空間開(kāi)啟獨(dú)享表空間模式之后InnoDB以table_name.idb命名在數(shù)據(jù)庫(kù)目錄之中保存新創(chuàng)建的表,數(shù)據(jù)和索引都保存在.idb文件,.frm仍然會(huì)創(chuàng)建用來(lái)保存元數(shù)據(jù)。即使使用獨(dú)
2、享表空間,共享表空間也會(huì)存在,因?yàn)樾枰娣乓恍﹗ndo信息和其他元數(shù)據(jù)信息。因此不能像MyISAM表文件那樣在數(shù)據(jù)庫(kù)目錄間隨便移動(dòng).idb文件,因?yàn)楣蚕肀砜臻g里會(huì)保存數(shù)據(jù)庫(kù)名,數(shù)據(jù)庫(kù)間的移動(dòng)應(yīng)使用RENAMETABLE語(yǔ)句:RENAMETABLEdb1.tbl_nameTOdb2.tbl_name;.idb文件的恢復(fù)方法:1、ALTERTABLEtbl_nameDISCARDTABLESPACE;丟棄現(xiàn)有表空間文件2、復(fù)制備份的.idb文件至正確的目錄3、ALTERTABLEtbl_nameIMPORTTABLESPACE;使用新的idb文件InnoDB啟動(dòng)選項(xiàng)和系統(tǒng)變量
3、VariablesDescriptioninnodb控制InnoDB的加載。OFF,ON,F(xiàn)ORCEinnodb_additional_mem_pool_sizeInnoDB用于保存數(shù)據(jù)字典信息和其他內(nèi)部數(shù)據(jù)結(jié)構(gòu)的內(nèi)存區(qū)大小,默認(rèn)8M。超出時(shí),使用操作系統(tǒng)內(nèi)存并向errorlog寫(xiě)錯(cuò)誤信息innodb_autoextend_increment自動(dòng)增長(zhǎng)的共享表空間寫(xiě)滿時(shí)的增長(zhǎng)大小innodb_autoinc_lock_modeauto_increment自動(dòng)增長(zhǎng)值的鎖定模式innodb_buffer_pool_sizeInnoDB緩存數(shù)據(jù)和索引的緩沖區(qū)大小。默認(rèn)是128M,數(shù)
4、據(jù)庫(kù)專用服務(wù)器可以將其設(shè)置為物理內(nèi)存的80%innodb_change_buffering開(kāi)啟修改緩存的類型inserts,deletes,purges,changes,all,noneinnodb_checksums開(kāi)啟校驗(yàn)和innodb_commit_concurrency同時(shí)刻可以進(jìn)行提交操作的線程數(shù)。值為0允許任意多事務(wù)同時(shí)提交innodb_concurrency_tickets線程通過(guò)innodb_thread_concurrency并發(fā)線程數(shù)驗(yàn)證后,可以得到一個(gè)innodb_concurrency_tickets數(shù)量的訪問(wèn)次數(shù),在該次數(shù)范圍內(nèi)不需要再進(jìn)行并發(fā)線程
5、數(shù)驗(yàn)證。innodb_data_file_path指定數(shù)據(jù)文件,格式為file_name:file_size[:autoextend[:max:max_file_size]]autoextend和max選項(xiàng)只能用于最后一個(gè)數(shù)據(jù)文件innodb_data_home_dir數(shù)據(jù)文件根目錄innodb_doublewrite啟用后,InnoDB分兩次存儲(chǔ)數(shù)據(jù),第一次寫(xiě)入buffer,第二次實(shí)際寫(xiě)入數(shù)據(jù)文件innodb_fast_shutdownInnoDB關(guān)閉模式,默認(rèn)1為快速關(guān)閉(正常關(guān)閉)innodb_file_format新創(chuàng)建的InnoDB表的文件格式,Antelope和
6、Barracudainnodb_file_format_checkInnoDB是否檢查共享表空間的fileformattag,tag大于當(dāng)前InnoDB所支持版本時(shí)InnoDB啟動(dòng)出錯(cuò),反之,InnoDB向tag寫(xiě)入當(dāng)前innodb_file_format_max的值innodb_file_format_max向共享表空間fileformattag寫(xiě)入的值innodb_file_per_table開(kāi)啟獨(dú)享表空間innodb_flush_log_at_trx_commit0:每隔一秒將日志寫(xiě)入logfile并flush到磁盤(pán)1:每次事務(wù)提交將日志寫(xiě)入logfile并flush
7、到磁盤(pán),默認(rèn)2:每次事務(wù)提交將日志寫(xiě)入logfile,每隔一秒flush到磁盤(pán)innodb_flush_method設(shè)置flush模式fdatasync:InnoDB使用fsync()函數(shù)去更新日志和數(shù)據(jù)文件。默認(rèn)。O_DSYNC:InnoDB使用O_SYNC模式打開(kāi)并更新日志文件,用fsync()函數(shù)去更新數(shù)據(jù)文件。O_DIRECT:InnoDB使用O_DIRECT模式(跳過(guò)文件系統(tǒng)cache)打開(kāi)數(shù)據(jù)文件,用fsync()函數(shù)去更新日志和數(shù)據(jù)文件innodb_force_recovery恢復(fù)模式0-6innod