相关文档 下载此手册
PDF (US Ltr) - 40.0Mb
PDF (A4) - 40.1Mb
手册页 (TGZ) - 258.2Kb
手册页 (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,则需要使用 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 引擎使用 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 语句”

其他资源