Archive
ARCHIVE
存储引擎是一种使用 gzip 来压缩行的存储引擎。它主要用于存储大量的数据,没有索引,只有非常小的占用空间。
使用 ARCHIVE
存储引擎的表在磁盘上存储为两个文件。一个是扩展名为 .frm 的表定义文件,另一个是扩展名为 .ARZ 的数据文件。在优化过程中,有时会出现一个 .ARN 文件。
新行插入到压缩缓冲区中,并在需要时刷新到磁盘。SELECT 语句会导致刷新。有时,由多行插入创建的行在语句完成之前是不可见的。
ARCHIVE
允许最多一个键。该键必须在一个 AUTO_INCREMENT
列上,并且可以是 PRIMARY KEY
或非唯一键。但是,它有一个限制:不可能插入低于下一个 AUTO_INCREMENT
值的值。
安装插件
虽然插件的共享库默认情况下随 MariaDB 分发,但 MariaDB 实际上并没有默认安装该插件。有两种方法可以使用 MariaDB 安装插件。
第一种方法可以在不重启服务器的情况下安装插件。您可以通过执行 INSTALL SONAME
或 INSTALL PLUGIN
来动态安装插件。例如:
INSTALL SONAME 'ha_archive';
第二种方法可以用来告诉服务器在启动时加载插件。可以通过提供 --plugin-load
或 --plugin-load-add
选项来安装此插件。这可以作为命令行参数指定给 mysqld
,也可以在相关服务器 option group 中的 option file 中指定。例如:
[mariadb] ... plugin_load_add = ha_archive
卸载插件
您可以通过执行 UNINSTALL SONAME
或 UNINSTALL PLUGIN
来动态卸载插件。例如:
UNINSTALL SONAME 'ha_archive';
如果您通过在相关服务器选项组中的选项文件中提供--plugin-load
或--plugin-load-add
选项来安装插件,则应删除这些选项,以防止在下次重新启动服务器时加载插件。
特点
- 支持INSERT和SELECT,但不支持DELETE,UPDATE或REPLACE。
- 在插入时使用zlib压缩数据,使其非常小。
- 数据选择速度较慢,因为需要解压缩,除了查询缓存之外,没有缓存。
- 支持AUTO_INCREMENT(自MariaDB / MySQL 5.1.6起),可以是唯一或非唯一索引。
- 自MariaDB / MySQL 5.1.6以来,选择会扫描BLOB列,除非它们被明确请求,从而使这些查询更加高效。
- 不支持spatial数据类型。
- 不支持事务。
- 不支持外键。
- 不支持虚拟列。
- 没有存储限制。
- 支持行锁定。
- 支持表发现,即使相应的
.frm
文件丢失,服务器也可以访问ARCHIVE表。 - OPTIMIZE TABLE和REPAIR TABLE可用于压缩整个表,从而实现稍微更好的压缩。
- 在MariaDB中,可以升级到MySQL 5.0格式,而无需转储表。
- 支持INSERT DELAYED。
- 在插入期间运行多个SELECT可能会破坏压缩,除非仅使用多行INSERT和INSERT DELAYED。
- No items found.