在老版本的MySQL 3.22中,MySQL的單表限大小為4GB,當時的MySQL的存儲引擎還是ISAM存儲引擎。但是,當出現MyISAM存儲引擎之後,也就是從MySQL 3.23開始,MySQL單表最大限制就已經擴大到了64PB了(官方文檔顯示)。也就是說,從目前的技術環境來看,MySQL數據庫的MyISAM存儲 引擎單表大小限制已經不是有MySQL數據庫本身來決定,而是由所在主機的OS上面的文件系統來決定了。
而MySQL另外壹個最流行的存儲引擎之壹Innodb存儲數據的策略是分為兩種的,壹種是***享表空間存儲方式,還有壹種是獨享表空間存儲方式。
當使用***享表空間存儲方式的時候,Innodb的所有數據保存在壹個單獨的表空間裏面,而這個表空間可以由很多個文件組成,壹個表可以跨多個文件存在,所 以其大小限制不再是文件大小的限制,而是其自身的限制。從Innodb的官方文檔中可以看到,其表空間的最大限制為64TB,也就是說,Innodb的單 表限制基本上也在64TB左右了,當然這個大小是包括這個表的所有索引等其他相關數據。
而當使用獨享表空間來存放Innodb的表的時候,每個表的數據以壹個單獨的文件來存放,這個時候的單表限制,又變成文件系統的大小限制了。