首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫

MySQL 單表大小限制深度解析:從儲存引擎到檔案系統

     編輯:MySQL 資料庫相關知識

結論先行

現今 MySQL 單表大小上限 不由 MySQL 決定,而是取決於作業系統檔案系統。

演進歷程

  • MySQL 3.22 (ISAM):單表 4 GB 限制。
  • MySQL 3.23+ (MyISAM):理論上限 64 PB(264 位元組),實際受限於 OS 檔案大小上限。
  • InnoDB 共享表空間:表空間上限 64 TB(含索引),單表受限於表空間總量。
  • InnoDB 獨立表空間 (innodb_file_per_table=ON):每表一個 .ibd 檔,再次受限於檔案系統單檔上限。

主流作業系統單檔大小限制對照

作業系統 / 檔案系統單檔上限
Windows FAT324 GB
Windows NTFS2 TB(理論 16 TB)
Linux 2.2 (ext2)2 GB (LFS 4 GB)
Linux 2.4+ (ext3/ext4)4 TB (ext3) / 16 TB (ext4)
Solaris 9/10 (UFS/ZFS)16 TB / 無實際上限
NetWare (NSS)8 TB
macOS (HFS+/APFS)2 TB / 8 EB

MyISAM 實務調整

預設建表上限 4 GB。需支援超大表時,建表或 ALTER TABLE 指定:

CREATE TABLE big_tbl (...) 
AVG_ROW_LENGTH=1000 MAX_ROWS=1000000000;  -- 依預估行大小與行數設定

官方建議

Windows 生產環境請務必使用 NTFS,FAT/VFAT 不適合 MySQL 部署。

快速檢視當前表上限

SHOW TABLE STATUS LIKE 'tbl_name'\G
myisamchk -dv tbl_name
  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved