MySQL 学习篇(二)MySQL常用存储引擎——Archive

目录

文件系统存储特点

Archive存储引擎特点

Linux命令操作演示

使用场景


  • 文件系统存储特点

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

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

  • Archive存储引擎特点

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

创建myarchive表

  1. 有两点需要注意:
    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指定存储类型
  2. 到文件系统中来看一下这个表的是如何存储的:
    [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 存储表结构
    
    
  3. 插入数据
    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)
  4. 数据删除操作
    mysql> delete from myarchive where id = 1;
    ERROR 1031 (HY000): Table storage engine for 'myarchive' doesn't have this option
    
    # 表示不支持删除
    
  5. 数据更新操作
    mysql> update myarchive  set c1='aaaa' where id =1;
    ERROR 1031 (HY000): Table storage engine for 'myarchive' doesn't have this option
    
    # 表示不支持更新
  6. 在非自增字段建立索引
    mysql> create index idx_c1 on myarchive(c1); 
    ERROR 1069 (42000): Too many keys specified; max 1 keys allowed
    
    # 只支持在自增ID建立索引
  • 使用场景

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

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

猜你喜欢

转载自blog.csdn.net/Sicily_winner/article/details/87745914
今日推荐