程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> MySQL單表大小的限制

MySQL單表大小的限制

編輯:關於MYSQL數據庫

MySQL單表大小的限制在目前的技術環境中,由所在主機的OS上面的文件系統來界定而不是由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更改這些選項,以增加表的最大允許容量。

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