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


MySQL 8.4 參考手冊  /  替代的儲存引擎  /  ARCHIVE 儲存引擎

18.5 ARCHIVE 儲存引擎

ARCHIVE 儲存引擎會產生特殊用途的資料表,以非常小的空間儲存大量未索引的資料。

表 18.5 ARCHIVE 儲存引擎功能

功能 支援
B 樹索引
備份/時間點復原(實作於伺服器中,而非儲存引擎中。)
叢集資料庫支援
叢集索引
壓縮資料
資料快取
加密資料 是(透過伺服器中的加密函數實作。)
外鍵支援
全文搜尋索引
地理空間資料類型支援
地理空間索引支援
雜湊索引
索引快取
鎖定粒度
MVCC
複製支援(實作於伺服器中,而非儲存引擎中。)
儲存限制
T 樹索引
交易
更新資料字典的統計資料

ARCHIVE 儲存引擎包含在 MySQL 二進位發行版本中。若要從原始碼建置 MySQL 時啟用此儲存引擎,請使用 -DWITH_ARCHIVE_STORAGE_ENGINE 選項呼叫 CMake

若要檢查 ARCHIVE 引擎的原始碼,請查看 MySQL 原始碼發行版本的 storage/archive 目錄。

您可以使用 SHOW ENGINES 語法檢查 ARCHIVE 儲存引擎是否可用。

當您建立 ARCHIVE 資料表時,儲存引擎會建立名稱以資料表名稱開頭的檔案。資料檔的副檔名為 .ARZ。最佳化作業期間可能會出現 .ARN 檔案。

ARCHIVE 引擎支援 INSERTREPLACESELECT,但不支援 DELETEUPDATE。它確實支援 ORDER BY 運算、BLOB 資料行和空間資料類型(請參閱第 13.4.1 節,「空間資料類型」)。不支援地理空間參考系統。ARCHIVE 引擎使用列層級鎖定。

ARCHIVE 引擎支援 AUTO_INCREMENT 資料行屬性。AUTO_INCREMENT 資料行可以有唯一或非唯一索引。嘗試在任何其他資料行上建立索引會導致錯誤。ARCHIVE 引擎也支援 CREATE TABLE 語法中的 AUTO_INCREMENT 資料表選項,以分別指定新資料表的初始序列值或重設現有資料表的序列值。

ARCHIVE 不支援將小於目前最大資料行值的數值插入 AUTO_INCREMENT 資料行中。嘗試這樣做會導致 ER_DUP_KEY 錯誤。

若未請求 BLOB 資料行,ARCHIVE 引擎會忽略它們,並在讀取時跳過它們。

ARCHIVE 儲存引擎不支援分割。

儲存:列在插入時會被壓縮。ARCHIVE 引擎使用 zlib 無損資料壓縮(請參閱 http://www.zlib.net/)。您可以使用 OPTIMIZE TABLE 分析資料表並將其壓縮為較小的格式(如需使用 OPTIMIZE TABLE 的原因,請參閱本節稍後內容)。引擎也支援 CHECK TABLE。有幾種類型的插入方式。

  • INSERT 語法只會將列推入壓縮緩衝區,且該緩衝區會在必要時清除。插入到緩衝區會受到鎖定的保護。 SELECT 會強制執行清除。

  • 只有在大量插入完成後才能看見,除非同時發生其他插入,在這種情況下,可以部分看見。除非在載入期間發生正常插入,否則 SELECT 永遠不會導致大量插入被清除。

擷取:在擷取時,列會依需求解壓縮;沒有列快取。SELECT 操作會執行完整的資料表掃描:當發生 SELECT 時,它會找出目前可用的列數並讀取該數量的列。SELECT 會以一致讀取方式執行。請注意,除非僅使用大量插入,否則在插入期間大量使用 SELECT 語法會降低壓縮率。若要達到較佳的壓縮率,您可以使用 OPTIMIZE TABLEREPAIR TABLESHOW TABLE STATUS 報告的 ARCHIVE 資料表中的列數永遠是正確的。請參閱第 15.7.3.4 節,「OPTIMIZE TABLE 語法」第 15.7.3.5 節,「REPAIR TABLE 語法」,以及第 15.7.7.37 節,「SHOW TABLE STATUS 語法」

其他資源