在MySQL中影響數據表尺寸的因素有很多,下面分別進行介紹:
MySQL數據表類型的不同對數據表尺寸的限制:
ISAM數據表中單個.ISD和.ISM文件的最大尺寸為4G;
MyISAM數據表中單個.MYD和.MYI文件的默認最大尺寸也是4G,但可在創建數據表時用AVG_ROW_LENGTH和MAX_ROWS選項把這個最值擴大到800萬TB。
MERGE數據表的最大尺寸是它的各組成MyISAM數據表的最大尺寸之和。
BDB數據表的尺寸受限於BDB處理程序所允許的.db文件的最大尺寸。這個最大尺寸隨著數據表頁面尺寸(編譯時確定)而變化,但即使是最小的頁面尺寸(512字節),.db文件的最大尺寸也可達2TB。
InnoDB數據表的表空間的最大尺寸是40億個頁面,默認的頁面尺寸是16K,該值可在8K到64K之間,在編譯時確定。InnoDB數據表的最大尺寸也就是表空間的最大尺寸。
操作系統對文件的尺寸限制,一般文件系統都對單個文件不得超過2G的限制。該約束會對數據庫文件造成限制。InnoDB數據表可通過利用未格式化硬盤作為表空間來繞過該限制。
對於數據和索引分開兩個文件存放的數據表,其中任何一個文件達到操作系統文件的最大限制,數據庫表也就達到最大尺寸。
包含AUTO_INCREMENT數據列的表受到該數據列類型最大上限值的限制。
由於InnoDB數據表用表空間來管理,一個表空間可同時空納多個數據表,所以數據表的最大尺寸受系統文件和同一表空間中數據表空間的約束。