ARCHIVE存储引擎
该ARCHIVE存储引擎产生大量未索引数据存储在一个非常小的足迹专用表。
ARCHIVE存储引擎功能
| 特征 | 支持 |
|---|---|
| B树索引 | 没有 |
| 备份/时间点恢复(在服务器中而不是在存储引擎中实现。) | 是 |
| 集群数据库支持 | 没有 |
| 聚集索引 | 没有 |
| 压缩数据 | 是 |
| 资料快取 | 没有 |
| 加密数据 | 是(通过加密功能在服务器中实现。) |
| 外键支持 | 没有 |
| 全文搜索索引 | 没有 |
| 地理空间数据类型支持 | 是 |
| 地理空间索引支持 | 没有 |
| 哈希索引 | 没有 |
| 索引缓存 | 没有 |
| 锁定粒度 | 行 |
| MVCC | 没有 |
| 复制支持(在服务器中而不是在存储引擎中实现。) | 是 |
| 储存限制 | 没有 |
| T树索引 | 没有 |
| 交易次数 | 没有 |
| 更新数据字典的统计信息 | 是 |
| 特征 | 支持 |
|---|
该ARCHIVE存储引擎包含在MySQL二进制分发。如果从源代码构建MySQL,则要启用此存储引擎,请使用-DWITH_ARCHIVE_STORAGE_ENGINE选项调用CMake。
要检查ARCHIVE引擎的源代码,请参见storage/archiveMySQL源代码分发目录。
您可以ARCHIVE使用该SHOW ENGINES语句检查存储引擎是否可用。
创建ARCHIVE表时,存储引擎会创建名称以表名开头的文件。数据文件的扩展名为.ARZ。在.ARN优化过程中操作文件可能会出现。
该ARCHIVE引擎支持INSERT,REPLACE和SELECT,而不是DELETE或UPDATE。它确实支持ORDER BY操作,BLOB列和空间数据类型(请参见“空间数据类型”)。不支持地理空间参考系统。该ARCHIVE发动机采用了行级锁。
该ARCHIVE引擎支持AUTO_INCREMENTcolumn属性。该AUTO_INCREMENT列可以具有唯一索引或非唯一索引。尝试在任何其他列上创建索引会导致错误。该ARCHIVE发动机还支持AUTO_INCREMENT在表选项CREATE TABLE语句来指定一个新的表中的初始序列值或者,重置序列值分别为现有的表。
ARCHIVE不支持将AUTO_INCREMENT小于当前最大列值的值插入到列中。尝试这样做会导致ER_DUP_KEY错误。
该ARCHIVE引擎将忽略BLOB列,如果没有要求,并扫描他们过去在阅读它们。
该ARCHIVE存储引擎不支持分区。
存储:插入行时会对其进行压缩。该ARCHIVE引擎使用zlib无损数据压缩(请参阅 http://www.zlib.net/)。您可以OPTIMIZE TABLE用来分析表格并将其打包为较小的格式(出于使用原因OPTIMIZE TABLE,请参阅本节后面的内容)。该引擎还支持CHECK TABLE。有几种插入类型:
- 一条
INSERT语句仅将行压入压缩缓冲区,然后根据需要刷新该缓冲区。插入缓冲区受锁保护。一个SELECT部队发生平齐。 - 批量插入仅在完成后才可见,除非其他插入同时发生,在这种情况下可以部分看到。
SELECT除非加载时发生普通插入,否则A 绝不会引起批量插入的刷新。
检索:检索时,按需解压缩行;没有行缓存。一个SELECT操作执行完整的表扫描:当SELECT发生a时,它将找出当前可用的行数并读取该行数。SELECT被执行为一致读取。请注意SELECT,除非仅使用批量插入,否则插入期间的大量语句可能会使压缩性能恶化。为了获得更好的压缩效果,可以使用OPTIMIZE TABLE或REPAIR TABLE。ARCHIVE报告的表中的行数SHOW TABLE STATUS始终准确。请参见“ OPTIMIZE TABLE语句”,“ REPAIR TABLE语句”和“ SHOW TABLE STATUS语句”。
