mysql之innodb引擎的共用資料表空間和獨立資料表空間,mysqlinnodb

來源:互聯網
上載者:User

mysql之innodb引擎的共用資料表空間和獨立資料表空間,mysqlinnodb

對於innodb的資料存放區檔案,首先要解決兩個概念性的問題: 共用資料表空間以及獨佔資料表空間。(innodb引擎與MYISAM引擎的區別很大。特別是它的資料存放區方式等.)

1、共用資料表空間和獨佔資料表空間介紹

共用資料表空間以及獨佔資料表空間都是針對資料的儲存方式而言的。

共用資料表空間:  每一個資料庫的所有的表資料,索引檔案全部放在一個檔案中,預設這個共用資料表空間的檔案路徑在data目錄下。 預設的檔案名稱為:ibdata1  初始化為10M。

獨佔資料表空間:  每一個表都將會產生以獨立的檔案方式來進行儲存,每一個表都有一個.frm表描述檔案,還有一個.ibd檔案(這個檔案包括了單獨一個表的資料內容以及索引內容)。


2、共用資料表空間和獨佔資料表空間的區別

共用資料表空間:
優點:
1)可以放資料表空間分成多個檔案存放到各個磁碟上(資料表空間檔案大小不受表大小的限制,如一個表可以分布在不同的檔案上)。表資料和表描述放在一起方便管理。
缺點:
1)所有的資料和索引存放到一個檔案中,將有一個很常大的檔案,雖然可以把一個大檔案分成多個小檔案,但是多個表及索引在資料表空間中混合儲存,這樣對於一個表做了大量刪除操作後資料表空間中將會有大量的空隙,特別是對於統計分析,日誌系統這類應用最不適合用共用資料表空間。


獨立資料表空間(在設定檔(my.cnf)中設定innodb_file_per_table=1):

優點:
1)每個表都有自已獨立的資料表空間。
2)每個表的資料和索引都會存在自已的資料表空間中。
3)可以實現單表在不同的資料庫中移動。
4)空間可以回收(除drop table操作處,表空不能自已回收):
Drop table操作自動回收資料表空間,如果對於統計分析或是日誌表,刪除大量資料後可以通過:alter table TableName engine=innodb;回縮不用的空間。
 對於使innodb-plugin的Innodb使用turncate table也會使空間收縮。
 對於使用獨立資料表空間的表,不管怎麼刪除,資料表空間的片段不會太嚴重的影響效能,而且還有機會處理。
5)使用獨佔資料表空間的效率以及效能會更高一點。

缺點:
1)單表增加過大,如超過100個G。


3、共用資料表空間以及獨佔資料表空間之間的轉化

修改獨佔空資料表空間配置,以下幾個參數必須在一起加入

innodb_data_home_dir = "/usr/local/mysql/var/"  資料庫檔案所存放的目錄

innodb_log_group_home_dir = "/usr/local/mysql/var" 日誌存放目錄

innodb_data_file_path=ibdata1:10M:autoextend  設定配置一個可擴充大小的尺寸為10MB的單獨檔案(共用資料檔案),名為ibdata1。沒有給出檔案的位置,所以預設的是在MySQL的資料目錄內(如 /db/mysql/ibdata1)。

innodb_file_per_table=1  是否使用共用以及獨佔資料表空間(1 為使用獨佔資料表空間,0 為使用共用資料表空間)


innodb_file_per_table 通過這個參數來實現的轉化,如果為OFF說明所使用的是共用資料表空間【預設情況下,所使用的資料表空間為共用資料表空間】

innodb_file_per_table值來進行修改即可,但是對於之前使用過的共用資料表空間則不會影響,除非手動的去進行修改或者是


注意:

InnoDB不建立目錄,所以在啟動伺服器之前請確認”所配置的路徑目錄”的確存在。

做資料的移植以及備份時,要注意資料檔案的完整性.



相關文章

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.