Mysql -InnoDB- innodb_file_per_table

http://www.2cto.com/database/201211/170313.html
http://docs.oracle.com/cd/E17952_01/refman-5.5-en/innodb-multiple-tablespaces.html

配置文件 my.cnf

innodb_file_per_table = 1 ##啓用InnoDB表每表一文件,默認所有庫使用一個表空間 獨立表空間:  

優點:
1.  每個表都有自已獨立的表空間。
2.  每個表的數據和索引都會存在自已的表空間中。
3.  可以實現單表在不同的數據庫中移動。
4.  空間可以回收(除drop table操作處,表空不能自已回收)
a)         Drop table操作自動回收表空間,如果對於統計分析或是日值表,刪除大量數據後可以通過:alter table TableName engine=innodb;回縮不用的空間。
b)         對於使innodb-plugin的Innodb使用turncate table也會使空間收縮。
c)         對於使用獨立表空間的表,不管怎麼刪除,表空間的碎片不會太嚴重的影響性能,而且還有機會處理。 
缺點:
單表增加過大,如超過100個G。
結論:
共享表空間在Insert操作上少有優勢。其它都沒獨立表空間表現好。當啓用獨立表空間時,請合理調整一 下:innodb_open_files 。
InnoDB Hot Backup(冷備)的表空間cp不會面對很多無用的copy了。而且利用innodb hot backup及表空間的管理命令可以實現單現移動。


-- Move table from system tablespace to its own tablespace.
SET GLOBAL innodb_file_per_table=1;
ALTER TABLE table_name ENGINE=InnoDB;
-- Move table from its own tablespace to system tablespace.
SET GLOBAL innodb_file_per_table=0;
ALTER TABLE table_name ENGINE=InnoDB;

#啓用InnoDB表每表一文件,默認所有庫使用一個表空間 

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章