MySQL InnoDB獨立表空間模式的優點和缺點介紹

chenfeng發表於2017-04-11
File-Per-Table的優點:
1.當表刪除或者truncate,空間可以被OS回收。
2.Truncate table在單個.ibd檔案上執行更快。
3.可以為每個表指定一個特定儲存。最佳化IO,空間管理。CREATE TABLE ... DATA DIRECTORY =absolute_path_to_directory 。
4.執行OPTIMEIZE TABLE,壓縮或者重建建立表空間。執行OPTIMIZE TABLE InnoDB會建立一個新的ibd檔案。當完成時,老的表空間會被新的代替。
5.可以移動單個表,不需要移動整個資料庫
6.可以把表複製到另外一個例項
7.innodb_file_per_table啟動後才能使用Barracuda檔案格式。
8.可以更有效的儲存帶BLOB,TEXT使用動態行模式的表。
9.使用innodb_file_per_table可以提高recovery的成功率,減少損壞錯誤發生恢復的時間。
10.可以快速的備份,恢復單個表。
11.innodb_file_per_table 可以從備份中去除一個表
12.innodb_file_per_table在備份和複製表時,容易觀察每個表的狀態。
13.可以透過檔案系統直接觀察表的大小。
14.當innodb_flish_method設定為O_DIRECT,通常linux檔案系統不允許併發的寫入同一個檔案。使用innodb_file_per_table就會有效能提升。
15.不啟用innodb_file_per_table,資料都會放在系統表空間中,最大64TB,如果使用innodb_file_per_table每個表可以64TB。

File-Per-Table的缺點:
1.表空間中的空間只能被這個表使用
2.fsync操作必須在每個表上都執行一遍
3.mysqld必須保持一個開啟的檔案控制程式碼,表太多會影響效能。
4.會消耗很多檔案描述
5.innodb_file_per_tablezhiyou 5.6.6或更高版本才能用,有向下相容問題。
6.如果很多表都增長,會出現檔案碎片問題。導致drop表和表掃描效能下降。
7.當drop表的時候會掃描buffer pool,如果太大會比較耗時。
8.innodb_autoextend_increment指定當檔案滿了之後增長的空間。

來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/15498/viewspace-2137001/,如需轉載,請註明出處,否則將追究法律責任。

相關文章