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