程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> MySQL綜合教程 >> innodb共享表空間vs獨立表空間

innodb共享表空間vs獨立表空間

編輯:MySQL綜合教程


innodb共享表空間vs獨立表空間   在使用Innodb引擎時將要面對兩種表空間的管理選擇的問題,Innodb有兩種管理表空間的方法:    1.  共享表空間(也可以拆分成多個小的表空間)    2.  獨立表空間每一個表有一個獨立的表空間。    我個人推薦使用獨立表空間。在性能和運維上獨立表空間比共享的表空間有很多優勢。下面我將分別說明一下兩種表空間管理的特點。    共享表空間:    優點:    可以放表空間分成多個文件存放到各個磁盤上(表空間文件大小不受表大小的限制,如一個表可以分布在不同步的文件上)。數據和文件放在一起方便管理。    缺點: www.2cto.com     所有的數據和索引存放到一個文件中以為著將有一個很常大的文件,雖然可以把一個大文件分成多個小文件,但是多個表及索引在表空間中混合存儲,這樣對於一個表做了大量刪除操作後表空間中將會有大量的空隙,特別是對於統計分析,日值系統這類應用最不適合用共享表空間。    我們知道共享表空間管理會出現表空間分配後不能回縮的問題,當出現臨時建索引或是創建一個臨時表的操作表空間擴大後,就是刪除相關的表也沒辦法回縮那部分空間了。我們存在磁盤監控時,也許就報警不斷了,但實際上MySQL還可以運行良好。另外,當磁盤上占用較多時性能也不是太好。    這種情況處理只能是是建一個新的Slave從主庫上Dump出來,然後在Dump到從庫中,動作較大。    對於InnoDB Hot Backup備份的操作(或是直接冷備),每次需要CP的文件比較大。如果現在有180G的表空間,但實際數據只有50多G,那麼我們將面對每次需要拷180G的數據。    這種方式也許mysqldump是一個好的處理方式了。    獨立表空間:    在配置文件(my.cnf)中設置: innodb_file_per_table    優點:    1.  每個表都有自已獨立的表空間。    2.  每個表的數據和索引都會存在自已的表空間中。    3.  可以實現單表在不同的數據庫中移動。    4.  空間可以回收(除drop table操作處,表空不能自已回收)    a)         Drop table操作自動回收表空間,如果對於統計分析或是日值表,刪除大量數據後可以通過:alter table TableName engine=innodb;回縮不用的空間。    b)         對於使innodb-plugin的Innodb使用turncate table也會使空間收縮。    c)         對於使用獨立表空間的表,不管怎麼刪除,表空間的碎片不會太嚴重的影響性能,而且還有機會處理。    缺點:   www.2cto.com     單表增加過大,如超過100個G。    對於單表增長過大的問題,如果使用共享表空間可以把文件分開,但有同樣有一個問題,如果訪問的范圍過大同樣會訪問多個文件,一樣會比較慢。對於獨立表空間也有一個解決辦法是:使用分區表,也可以把那個大的表空間移動到別的空間上然後做一個連接。其實從性能上出發,當一個表超過100個G有可能響應也是較慢了,對於獨立表空間還容易發現問題早做處理。    備份:    InnoDB Hot Backup(冷備)的表空間cp不會面對很多無用的copy了。而且利用innodb hot backup及表空間的管理命令可以實現單現移動。    監控: www.2cto.com     可以更好從系統上監控數據的大小,每個表的大小。    另外推薦使用獨立表空間的原因:    從性能上對比共享表空間和獨立表空間:    共享表空間在Insert操作上少有優勢。其它都沒獨立表空間表現好。這裡也有一個TIPS當啟用獨立表空間時,請合理調整一下:innodb_open_files 。    從Linux系統處理上出發:    文件系統fsync一大片更新數據,對系統io沖擊較大。若分隔成多個小數據fsync,能夠減少對讀的影響。 同時從mysql代碼,發現mysql保證兩次fsync之間至少有20ms的sleep,這樣的話,若將一次fsync變成多次小數據操作,應該能夠減少慢查詢的比例。所以對於大量更新操作的系統不太適合用共享表空間。   來源 http://www.mysqlsupport.cn/
 

  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved