## 16.5 ARCHIVE 存储引擎 [](<>)[](<>) 这`档案`存储引擎生成专用表,在很小的空间内存储大量未索引的数据。 [](<>) **表 16.5 ARCHIVE 存储引擎功能** | 特征 | 支持 | | --- | --- | | **B树索引** | 不 | | **备份/时间点恢复**(在服务器中实现,而不是在存储引擎中。) | 是的 | | **集群数据库支持** | 不 | | **聚集索引** | 不 | | **压缩数据** | 是的 | | **数据缓存** | 不 | | **加密数据** | 是(通过加密功能在服务器中实现。) | | **外键支持** | 不 | | **全文检索索引** | 不 | | **地理空间数据类型支持** | 是的 | | **地理空间索引支持** | 不 | | **哈希索引** | 不 | | **索引缓存** | 不 | | **锁定粒度** | 排 | | **MVCC** | 不 | | **复制支持**(在服务器中实现,而不是在存储引擎中。) | 是的 | | **存储限制** | 没有 | | **T-树索引** | 不 | | **交易** | 不 | | **更新数据字典的统计信息** | 是的 | 这`档案`存储引擎包含在 MySQL 二进制发行版中。如果您从源代码构建 MySQL,要启用此存储引擎,请调用**制作**与[`-DWITH_ARCHIVE_STORAGE_ENGINE`](source-configuration-options.html#option_cmake_storage_engine_options)选项。 检查源`档案`发动机,看看`存储/归档`MySQL 源代码分发的目录。 您可以检查是否`档案`存储引擎可与[`显示引擎`](show-engines.html)陈述。 当你创建一个`档案`表,存储引擎创建名称以表名开头的文件。数据文件的扩展名为`.ARZ`.一个`.ARN`文件可能会在优化操作期间出现。 这`档案`发动机支架[`插入`](insert.html),[`代替`](replace.html), 和[`选择`](select.html), 但不是[`删除`](delete.html)要么[`更新`](update.html).它确实支持`订购方式`操作,[`斑点`](blob.html)列和空间数据类型(请参阅[第 11.4.1 节,“空间数据类型”](spatial-type-overview.html))。不支持地理空间参考系统。这`档案`引擎使用行级锁定。 这`档案`引擎支持`自动递增`列属性。这`自动递增`列可以有唯一或非唯一索引。尝试在任何其他列上创建索引会导致错误。这`档案`引擎还支持`自动递增`表选项在[`创建表`](create-table.html)语句分别指定新表的初始序列值或重置现有表的序列值。 `档案`不支持将值插入`自动递增`列小于当前最大列值。尝试这样做会导致[`ER_DUP_KEY`](https://dev.mysql.com/doc/mysql-errors/8.0/en/server-error-reference.html#error_er_dup_key)错误。 这`档案`引擎忽略[`斑点`](blob.html)如果没有请求它们,则在阅读时扫描它们。 这`档案`存储引擎不支持分区。 **贮存:**行在插入时被压缩。这`档案`发动机用途`zlib`无损数据压缩(见)。您可以使用[`优化表`](optimize-table.html)分析表格并将其打包成更小的格式(出于使用的原因[`优化表`](optimize-table.html),见本节后面)。该引擎还支持[`检查表`](check-table.html).使用了几种类型的插入: - 一个[`插入`](insert.html)语句只是将行推入压缩缓冲区,并根据需要刷新该缓冲区。插入缓冲区受锁保护。一种[`选择`](select.html)强制冲洗发生。 - 批量插入仅在完成后才可见,除非同时发生其他插入,在这种情况下可以部分看到它。一种[`选择`](select.html)除非在加载时发生正常插入,否则绝不会导致批量插入刷新。 **恢复**:检索时,行按需解压缩;没有行缓存。一种[`选择`](select.html)操作执行完整的表扫描:当一个[`选择`](select.html)发生时,它会找出当前可用的行数并读取该行数。[`选择`](select.html)作为一致读取执行。请注意,很多[`选择`](select.html)插入期间的语句会降低压缩性能,除非只使用批量插入。为了实现更好的压缩,您可以使用[`优化表`](optimize-table.html)要么[`维修台`](repair-table.html).中的行数`档案`报告的表格[`显示表状态`](show-table-status.html)总是准确的。看[第 13.7.3.4 节,“优化 TABLE 语句”](optimize-table.html),[第 13.7.3.5 节,“REPAIR TABLE 语句”](repair-table.html), 和[第 13.7.7.38 节,“SHOW TABLE STATUS 语句”](show-table-status.html). ### 其他资源 - 一个专门的论坛`档案`存储引擎可在.