Related Documentation Download this Manual
PDF (US Ltr) - 39.8Mb
PDF (A4) - 39.9Mb
Man Pages (TGZ) - 257.9Kb
Man Pages (Zip) - 364.9Kb
Info (Gzip) - 4.0Mb
Info (Zip) - 4.0Mb


MySQL 8.4 Reference Manual  /  Alternative Storage Engines  /  The ARCHIVE Storage Engine

18.5 ARCHIVE 存储引擎

ARCHIVE 存储引擎生产特殊用途表,存储大量未索引数据在非常小的 footprint 中。

Table 18.5 ARCHIVE Storage Engine Features

Feature Support
B-tree 索引
备份/点时恢复 (在服务器中实现,而不是在存储引擎中。)
集群数据库支持
聚簇索引
压缩数据
数据缓存
加密数据 是(在服务器中通过加密函数实现。)
外键支持
全文搜索索引
地理数据类型支持
地理索引支持
哈希索引
索引缓存
锁定粒度
MVCC
复制支持(在服务器端实现,而不是在存储引擎中。)
存储限制
T树索引
事务
更新数据字典统计信息

ARCHIVE存储引擎在MySQL二进制发行版中包含。要在源代码中启用该存储引擎,使用CMake命令,并添加-DWITH_ARCHIVE_STORAGE_ENGINE选项。

要查看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 错误。

如果不请求,ARCHIVE 引擎忽略BLOB 列,并在读取时扫描过去。

ARCHIVE 存储引擎不支持分区。

存储: 插入行时将其压缩。ARCHIVE 引擎使用无损数据压缩(见http://www.zlib.net/)。您可以使用OPTIMIZE TABLE 分析表并将其打包到更小的格式(用于使用OPTIMIZE TABLE,见本节后)。引擎还支持CHECK TABLE。有多种插入类型:

  • 一个INSERT语句只是将行推送到压缩缓冲区中,并且该缓冲区会不时地刷新。缓冲区中的插入操作被锁定保护。一个SELECT语句强制发生刷新。

  • 批量插入直到完成后才可见,除非其他插入操作与之同时进行,则可能部分可见。一个SELECT语句不会导致批量插入的刷新,除非在加载过程中出现正常插入操作。

检索:在检索时,行将按需解压缩;没有行缓存。一个SELECT操作执行完整表扫描:当SELECT发生时,它找到当前可用的行数,然后读取该行数。SELECT以一致性读取方式执行。注意,在插入操作中,多个SELECT语句可能会降低压缩率,除非使用批量插入。要提高压缩率,可以使用OPTIMIZE TABLEREPAIR TABLEARCHIVE表中的行数由SHOW TABLE STATUS准确报告。见第15.7.3.4节,“OPTIMIZE TABLE 语句”第15.7.3.5节,“REPAIR TABLE 语句”第15.7.7.37节,“SHOW TABLE STATUS 语句”