zoukankan      html  css  js  c++  java
  • MySQL Archive存储引擎

    介绍

     从archive单词的解释我们大概可以明白这个存储引擎的用途,这个存储引擎基本上用于数据归档;它的压缩比非常的高,存储空间大概是innodb的10-15分之一所以它用来存储历史数据非常的适合,由于它不支持索引同时也不能缓存索引和数据,所以它不适合作为并发访问表的存储引擎。Archivec存储引擎使用行锁来实现高并发插入操作,但是它不支持事务,其设计目标只是提供高速的插入和压缩功能。

    特点

    每个archive表在磁盘上存在两个文件

    .frm(存储表定义)

    .arz(存储数据)

    1.archive存储引擎支持insert、replace和select操作,但是不支持update和delete。

    2.archive存储引擎支持blob、text等大字段类型。支持auto_increment自增列同时自增列可以不是唯一索引。

    3.archive支持auto_increment列,但是不支持往auto_increment列插入一个小于当前最大的值的值。

    4.archive不支持索引所以无法在archive表上创建主键、唯一索引、和一般的索引。

    存储

    往archive表插入的数据会经过压缩,archive使用zlib进行数据压缩,archive支持optimize table、 check table操作。

    一个insert语句仅仅往压缩缓存中插入数据,插入的数据在压缩缓存中被锁定,当select操作时会触发压缩缓存中的数据进行刷新。insert delay除外。

    对于一个bulk insert操作只有当它完全执行完才能看到记录,除非在同一时刻还有其它的inserts操作,在这种情况下可以看到部分记录,select从不刷新bulk insert除非在它加载时存在一般的Insert操作。

    检索

    对于检索请求返回的行不会压缩,且不会进行数据缓存;一个select查询会执行完整的表扫描;当一个select查询发生时它查找当前表所有有效的行,select执行一致性读操作,注意,过多的select查询语句会导致压缩插入性能变的恶化,除非使用bulk insert或delay insert,可以使用OPTIMIZE TABLE 或REPAIR TABLE来获取更好的压缩,可以使用SHOW TABLES STATUS查看ARCHIVE表的记录行。

     

    分区

    Archive存储引擎支持分区

    create table tb_archive(id int not null ,
    name varchar(30),
    address varchar(300),
    mark text)engine=archive;
    ALTER TABLE tb_archive 
    PARTITION BY RANGE(id) PARTITIONS 3( PARTITION part0 VALUES LESS THAN (5),  PARTITION part1 VALUES LESS THAN (10),  PARTITION part2 VALUES LESS THAN (MAXVALUE)) ;
    
    ALTER TABLE tb_archive 
    PARTITION BY LIST COLUMNS (name) (
        PARTITION a VALUES IN ('A','B'),
        PARTITION b VALUES IN ('C'),
        PARTITION c VALUES IN ('D')
    );
    
    ALTER TABLE tb_archive 
    PARTITION BY KEY(address)
    PARTITIONS 3;

    参考来自:http://dev.mysql.com/doc/refman/5.6/en/archive-storage-engine.html

    总结

    由于高压缩和快速插入的特点Archive非常适合作为日志表的存储引擎,但是前提是不经常对该表进行查询操作。

    备注:

        作者:pursuer.chen

        博客:http://www.cnblogs.com/chenmh

    本站点所有随笔都是原创,欢迎大家转载;但转载时必须注明文章来源,且在文章开头明显处给明链接。

    《欢迎交流讨论》

  • 相关阅读:
    1026 Table Tennis (30)
    1029 Median
    1025 PAT Ranking (25)
    1017 Queueing at Bank (25)
    1014 Waiting in Line (30)
    1057 Stack (30)
    1010 Radix (25)
    1008 Elevator (20)
    字母大小写转换
    Nmap的基础知识
  • 原文地址:https://www.cnblogs.com/chenmh/p/5821844.html
Copyright © 2011-2022 走看看