現今 MySQL 單表大小上限 不由 MySQL 決定,而是取決於作業系統檔案系統。
innodb_file_per_table=ON):每表一個 .ibd 檔,再次受限於檔案系統單檔上限。| 作業系統 / 檔案系統 | 單檔上限 |
|---|---|
| Windows FAT32 | 4 GB |
| Windows NTFS | 2 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 |
預設建表上限 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