MySQL常用存储引擎——Archive

1,文件系统存储特点

在这里插入图片描述
会缓存所有的写并且利用zlib对插入的行进行压缩,所以Archive搜索引擎比MyISAM存储引擎的表,更加节约磁盘I/O,对于同样数量级的数据,Archive存储引擎比MyISAM、InnoDB更加节约存储空间,一个几T的数据表数据存储到Archive存储引擎表中,可能只需要几百兆的存储空间就可以了;

Archive存储引擎数据文件都是ARZ为后缀文件,另外的和其他存储引擎一样,Archive存储引擎也存在一个以frm为后缀的文件,用于存储这种表的结构信息,这就是Archive存储引擎在文件系统中存储的一些特点。

2,Archive存储引擎特点

只支持insert和select操作【Archive存储引擎支持行级锁和专用的缓冲区,可以实现并发的插入,这种存储引擎在某些方面的模仿了事务存储引擎的一些特点,但是Archive本身并不是一种是事务的存储引擎】
只允许在自增的ID上加索引

3,Linux命令操作演示

创建myarchive表

有两点需要注意:

mysql> create  table myarchive( id int auto_increment not null , c1  varchar(10),c2  char(10),key(id)) engine = archive;
Query OK, 0 rows affected (0.00 sec
# 1、建立的ID列是具有自增属性,在Mysql中自增的类都是要求在索引中的,建表的同时指定索引
# 2、利用engine指定存储类型

到文件系统中来看一下这个表的是如何存储的:

[root@localhost test]# ls -lh myarchive.*
-rw-rw----. 1 mysql mysql 8.5K 2月  20 10:49 myarchive.ARZ
-rw-rw----. 1 mysql mysql 8.5K 2月  20 10:49 myarchive.frm
[root@localhost test]# 
# arz 存储数据
# frm 存储表结构

插入数据

mysql> insert into myarchive (c1,c2) values ('aa','bb'),('cc','dd');
Query OK, 2 rows affected (0.00 sec)
Records: 2  Duplicates: 0  Warnings: 0

 
mysql> select * from myarchive;
+----+------+------+
| id | c1   | c2   |
+----+------+------+
|  1 | aa   | bb   |
|  2 | cc   | dd   |
+----+------+------+
2 rows in set (0.00 sec)

数据删除操作

mysql> delete from myarchive where id = 1;
ERROR 1031 (HY000): Table storage engine for 'myarchive' doesn't have this option
 
# 表示不支持删除

数据更新操作

mysql> update myarchive  set c1='aaaa' where id =1;
ERROR 1031 (HY000): Table storage engine for 'myarchive' doesn't have this option
 
# 表示不支持更新

在非自增字段建立索引

mysql> create index idx_c1 on myarchive(c1); 
ERROR 1069 (42000): Too many keys specified; max 1 keys allowed
 
# 只支持在自增ID建立索引

4,使用场景

是无法在OLTP类的应用中所使用的,因为它不支持对数据的修改,而OLTP中一定会对数据进行修改,对于一些数据仓库的应用,或者一些特殊的表,如:记录日志类的表或者数据采集的表,由于会要存储大量的数据,就比较适合Archive存储引擎,存储空间占用最小。

注意:即使是在日志采集和数据的应用中,Archive存储引擎也是无法进行数据的删除和更新的。

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值