MySQL單表大小是有受到限制的,下面就為您詳細介紹MySQL單表大小的限制,如果您遇到過MySQL單表大小方面的問
題,不妨一看。
在老版本的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的表的時候,每個表的資料以一個單獨的檔案來存放,這個時候的單表限制,又變成檔案系統
的大小限制了。
以下是從收集到的一點資訊,不一定全部準確: 作業系統 大小限制 Java程式碼 win32 w/ FAT/FAT32 2GB/4GB win32 w/ NTFS 2TB(可能更大) Linux 2.2-Intel 32-bit 2GB (LFS: 4GB) Linux 2.4+ 4TB(ext3) Solaris 9/10 16TB NetWare w/NSS filesystem 8TB MacOS X w/ HFS+ 2TB
win32 w/ FAT/FAT32 2GB/4GB win32 w/ NTFS 2TB(可能更大) Linux 2.2-Intel 32-bit 2GB (LFS: 4GB) Linux 2.4+ 4TB(ext3) Solaris 9/10 16TB NetWare w/NSS filesystem 8TB MacOS X w/ HFS+ 2TB
以下是MySQL文件中的內容: Windows使用者請注意: FAT和VFAT (FAT32)不適合MySQL的生產使用。應使用NTFS。
在預設情況下,MySQL建立的MyISAM表允許的最大尺寸為4GB。你可以使用SHOW
TABLE STATUS語句或myisamchk -dv tbl_name檢查表的最大尺寸。請參見13.5.4節,
“SHOW語法”。
如果需要使用大於4GB的MyISAM表(而且你的作業系統支援大檔案),可使用允許
AVG_ROW_LENGTH和MAX_ROWS選項的CREATE TABLE語句。建立了表後,
也可以使用ALTER TABLE更改這些選項,以增加表的最大允許容量。