MySQL共享表空間和獨立表空間


關於共享表空間和獨立表空間的知識總結!
 
【共享表空間/系統表空間】
Innodb 將存儲的數據按照表空間(tablespace)進行存放,默認配置下,會有一個初始大小10M,名為:ibdata1的文件,這就是默認的表空間文件。
 
配置文件中的設置:
1.默認設置
      innodb_data_file_path = ibdata1:10M:autoextend
     生成文件默認是在data目錄下。
2.多路徑設置
      innodb_data_file_path = /data1/db1/ibdata1:100M:autoextend; /data2/db2/ibdata2:100M:autoextend
      放在不同的磁盤,可以平均磁盤負載,提高數據庫性能。
3.記錄內容
     記錄所有基於Innodb存儲引擎的表的數據。
 
【獨立表空間】
1.配置
mysql> show variables like 'innodb_file_per%'\G;
*************************** 1. row ***************************
Variable_name: innodb_file_per_table
  Value: ON
注意: MySQL5.6.7之后默認開啟
 
2.位置
在對應的表所在的目錄,生成:表名.ibd文件
[root@monitor wb]# pwd
/mysqlData/con1/data/wb
[root@monitor wb]# ll -h u1.*
-rw-rw----. 1 mysql mysql 8.5K Feb 28 20:36 u1.frm
-rw-rw----. 1 mysql mysql 96K Feb 28 20:37 u1.ibd
 
3.記錄內容
獨立的表空間,僅存儲該表的:數據,索引和插入緩沖BITMAP等信息。
其余信息仍存儲在默認表空間。
 
【相關知識點說明】
 
1.啟用innodb_file_per_table后,每張表的表空間只存放自己的:數據,索引和插入緩沖BITMAP頁。其它信息仍放在默認表空間。
 
其它信息如:回滾(undo)信息、插入緩沖索引頁、系統的事物信息、二次寫緩沖(Double write buffer)等。
 
2.file_per_table的特點
 
可以靈活選擇:row format和file format。對於 數據壓縮、truncate table操作會更快寫。
 
回收空間可以再次被利用,相反默認表空間不會收縮空間。
 
MySQL Enterprise Backu對於擁有獨立表空間的表,更靈活。表能從備份中單獨出來,適合備份不是太頻繁的表。
 
3.表空間:從邏輯存儲結構看,所有數據都被邏輯地存放在一個空間中,稱之為表空間(tablespace)
 
4.共享表空間大小不會自動收縮。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM