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
引擎支援 INSERT
、REPLACE
和 SELECT
,但並非 DELETE
或 UPDATE
。它支援 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
。有多種類型的插入使用
擷取:擷取時,資料列會依需求解壓縮;沒有資料列快取。SELECT
作業會執行完整的資料表掃描:當發生 SELECT
時,它會找出目前有多少資料列可用,並讀取該數量的資料列。SELECT
會執行為一致的讀取。請注意,除非僅使用大量插入,否則在插入期間大量的 SELECT
陳述式可能會降低壓縮。若要達到更好的壓縮,您可以使用 OPTIMIZE TABLE
或 REPAIR TABLE
。SHOW TABLE STATUS
報告的 ARCHIVE
資料表中的資料列數目一律準確。請參閱第 15.7.3.4 節:「OPTIMIZE TABLE 陳述式」、第 15.7.3.5 節:「REPAIR TABLE 陳述式」,以及 第 15.7.7.37 節:「SHOW TABLE STATUS 陳述式」。
其他資源
在 https://forums.mysql.com/list.php?112 提供專門討論
ARCHIVE
儲存引擎的論壇。