ARCHIVE存储引擎
该ARCHIVE
存储引擎产生大量未索引数据存储在一个非常小的足迹专用表。
ARCHIVE存储引擎功能
特征 | 支持 |
---|---|
B树索引 | 没有 |
备份/时间点恢复(在服务器中而不是在存储引擎中实现。) | 是 |
集群数据库支持 | 没有 |
聚集索引 | 没有 |
压缩数据 | 是 |
资料快取 | 没有 |
加密数据 | 是(通过加密功能在服务器中实现。) |
外键支持 | 没有 |
全文搜索索引 | 没有 |
地理空间数据类型支持 | 是 |
地理空间索引支持 | 没有 |
哈希索引 | 没有 |
索引缓存 | 没有 |
锁定粒度 | 行 |
MVCC | 没有 |
复制支持(在服务器中而不是在存储引擎中实现。) | 是 |
储存限制 | 没有 |
T树索引 | 没有 |
交易次数 | 没有 |
更新数据字典的统计信息 | 是 |
特征 | 支持 |
---|
该ARCHIVE
存储引擎包含在MySQL二进制分发。如果从源代码构建MySQL,则要启用此存储引擎,请使用-DWITH_ARCHIVE_STORAGE_ENGINE
选项调用CMake。
要检查ARCHIVE
引擎的源代码,请参见storage/archive
MySQL源代码分发目录。
您可以ARCHIVE
使用该SHOW ENGINES
语句检查存储引擎是否可用。
创建ARCHIVE
表时,存储引擎会创建名称以表名开头的文件。数据文件的扩展名为.ARZ
。在.ARN
优化过程中操作文件可能会出现。
该ARCHIVE
引擎支持INSERT
,REPLACE
和SELECT
,而不是DELETE
或UPDATE
。它确实支持ORDER BY
操作,BLOB
列和空间数据类型(请参见“空间数据类型”)。不支持地理空间参考系统。该ARCHIVE
发动机采用了行级锁。
该ARCHIVE
引擎支持AUTO_INCREMENT
column属性。该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语句”。