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

MySQL 表大小限制全景圖:引擎、OS、檔案系統、AUTO_INCREMENT 多維約束

     編輯:MySQL 資料庫相關知識

引擎層面硬性上限

引擎單表/表空間上限關鍵參數
MyISAM256 TB (MySQL 5.0+) / 4 GB (舊版)MAX_ROWS, AVG_ROW_LENGTH 擴展 .MYD/.MYI
InnoDB64 TB (40 億頁 × 16 KB 頁)表空間共享,受 innodb_data_file_path 總大小限制
BDB2 TB (512 B 頁) ~ 更大.db 檔案大小受頁面尺寸影響
ISAM4 GB已淘汰
MERGE所有子 MyISAM 表大小之和邏輯視圖,無獨立存儲
MEMORY (HEAP)max_heap_table_size (預設 16 MB)純記憶體,重啟丟失

作業系統與檔案系統瓶頸

  • 32 位元系統單檔 2 GB/4 GB 限制(ext2/3 舊版)。
  • ext4/xfs/NTFS 支援 16 TB+ 單檔,基本解除限制。
  • InnoDB 可用原始裝置繞過檔案系統大小限制。

分離存儲的短板效應

MyISAM/BDB 索引與資料分檔(.MYI/.MYD),任一檔案觸及 OS 上限即整表寫入失效。

AUTO_INCREMENT 計數器上限

主鍵耗盡導致 ERROR 1062: Duplicate entry,需提前規劃 BIGINT 或 UUID。

InnoDB 共享表空間的隱性約束

多表共用 ibdata*,單表大小受總表空間剩餘空間限制。建議開啟 innodb_file_per_table=1 獨立表空間(.ibd),單獨管理、可攜帶、支援 DISCARD/IMPORT TABLESPACE 瞬時遷移。

  1. 上一篇文章:
  2. 下一篇文章:
Copyright © 程式碼之家 All Rights Reserved
類型無符號上限有符號上限
TINYINT255127
SMALLINT65,53532,767
MEDIUMINT16,777,2158,388,607
INT4,294,967,2952,147,483,647
BIGINT18,446,744,073,709,551,6159,223,372,036,854,775,807