文件首頁
MySQL 8.4 參考手冊
相關文件 下載本手冊
PDF (US Ltr) - 39.9Mb
PDF (A4) - 40.0Mb
手冊頁 (TGZ) - 258.5Kb
手冊頁 (Zip) - 365.5Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 參考手冊  /  ...  /  表格大小限制

10.4.6 表格大小限制

MySQL 資料庫的有效最大表格大小通常取決於作業系統對檔案大小的限制,而不是 MySQL 內部限制。有關作業系統檔案大小限制的最新資訊,請參閱作業系統的特定文件。

Windows 使用者請注意,FAT 和 VFAT (FAT32) 適合用於 MySQL 的生產環境。請改用 NTFS。

如果您遇到全表格錯誤,可能有以下幾個原因:

  • 磁碟可能已滿。

  • 您正在使用 InnoDB 表格,並且 InnoDB 表格空間檔案中的空間已用完。最大表格空間大小也是表格的最大大小。有關表格空間大小限制,請參閱第 17.21 節「InnoDB 限制」

    通常,對於大於 1TB 的表格,建議將表格分割成多個表格空間檔案。

  • 您已達到作業系統檔案大小限制。例如,您正在使用 MyISAM 表格,而作業系統僅支援最大 2GB 的檔案大小,並且您已達到資料檔案或索引檔案的此限制。

  • 您正在使用 MyISAM 表格,而表格所需的空間超出了內部指標大小所允許的範圍。MyISAM 預設允許資料和索引檔案增長到 256TB,但此限制可以更改為最大允許大小 65,536TB (2567 − 1 位元組)。

    如果您的 MyISAM 表格需要大於預設限制,並且您的作業系統支援大型檔案,則 CREATE TABLE 陳述式支援 AVG_ROW_LENGTHMAX_ROWS 選項。請參閱第 15.1.20 節「CREATE TABLE 陳述式」。伺服器使用這些選項來決定允許表格的大小。

    如果指標大小對於現有表格來說太小,您可以使用 ALTER TABLE 更改選項,以增加表格的最大允許大小。請參閱第 15.1.9 節「ALTER TABLE 陳述式」

    ALTER TABLE tbl_name MAX_ROWS=1000000000 AVG_ROW_LENGTH=nnn;

    只有在表格包含 BLOBTEXT 資料行時,才需要指定 AVG_ROW_LENGTH。在這種情況下,MySQL 無法僅根據資料列的數量來最佳化所需的空間。

    若要變更 MyISAM 表格的預設大小限制,請設定 myisam_data_pointer_size,此變數會設定內部資料列指標所使用的位元組數。如果您未指定 MAX_ROWS 選項,則此值會用於設定新表格的指標大小。myisam_data_pointer_size 的值可以在 2 到 7 之間。例如,對於使用動態儲存格式的表格,值為 4 時允許表格最大達到 4GB;值為 6 時允許表格最大達到 256TB。使用固定儲存格式的表格則具有較大的最大資料長度。如需儲存格式的特性,請參閱 第 18.2.3 節,「MyISAM 表格儲存格式」

    您可以使用此語句來檢查最大資料和索引大小

    SHOW TABLE STATUS FROM db_name LIKE 'tbl_name';

    您也可以使用 myisamchk -dv /路徑/至/表格索引檔案。請參閱 第 15.7.7 節,「SHOW 語句」,或 第 6.6.4 節,「myisamchk — MyISAM 表格維護公用程式」

    以下是其他解決 MyISAM 表格檔案大小限制的方法

  • 您正在使用 MEMORY ( HEAP ) 儲存引擎;在這種情況下,您需要增加 max_heap_table_size 系統變數的值。請參閱 第 7.1.8 節,「伺服器系統變數」