您好,登錄后才能下訂單哦!
InnoDB 默認會將所有的數據庫InnoDB引擎的表數據存儲在一個共享空間中:ibdata1,這樣就感覺不爽,增刪數據庫的時候,ibdata1文件不會自動收縮,單個數據庫的備份也將成為問題。通常只能將數據使用mysqldump 導出,然后再導入解決這個問題。
在MySQL的配置文件[mysqld]部分,增加innodb_file_per_table參數。
可以修改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及表空間的管理命令可以實現單現移動。
1.innodb_file_per_table設置.開啟方法:
在my.cnf中[mysqld]下設置
innodb_file_per_table=1
2.查看是否開啟:
mysql> show variables like ‘%per_table%’;
3.關閉獨享表空間
innodb_file_per_table=0關閉獨立的表空間
mysql> show variables like ‘%per_table%’;
一個表不能包含超過1000列。
內部最大鍵長度是3500字節,但MySQL自己限制這個到1024字節。
除了VARCHAR, BLOB和TEXT列,最大行長度稍微小于數據庫頁的一半。即,最大行長度大約8000字節。LONGBLOB和LONGTEXT列必須小于4GB, 總的行長度,頁包括BLOB和TEXT列,必須小于4GB。InnoDB在行中存儲VARCHAR,BLOB或TEXT列的前768字節,余下的存儲的分散的頁中。
雖然InnoDB內部地支持行尺寸大于65535,你不能定義一個包含VARCHAR列的,合并尺寸大于65535的行。
nnoDB日志文件的合并尺寸必須小于4GB。
最小的表空間尺寸是10MB。最大的表空間尺寸是4,000,000,000個數據庫頁(64TB)。這也是一個表的最大尺寸。
InnoDB表不支持FULLTEXT索引
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。