文件首頁
MySQL 9.0 參考手冊
相關文件 下載本手冊
PDF (美式信紙) - 40.0Mb
PDF (A4) - 40.1Mb
Man Pages (TGZ) - 258.2Kb
Man Pages (Zip) - 365.3Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 9.0 參考手冊  /  替代儲存引擎  /  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 陳述式」

其他資源