archive储存引擎的应用场景就是它的名字的缩影,主要用于归档。archive储存引擎仅支持select和insert,最出众的是插入快,查询快,占用空间小。例如我们有大量的历史数据极少访问又不能删除,需要保存,那么它是非常不错的选择。archive最出名的就是压缩,它的引擎使用zlib无损数据压缩算法,压缩率非常好,这里测试下效果。

根据英文的测试结论来看,Archive表比MyISAM表要小大约75%,比支持事务处理的InnoDB表小大约83%。当数据量非常大的时候Archive的插入性能表现会较MyISAM为佳。

Archive表的性能是否可能超过MyISAM?答案是肯定的。根据MySQL工程师的资料,当表内的数据达到1.5GB这个量级,CPU又比较快的时候,Archive表的执行性能就会超越MyISAM表。因为这个时候,CPU会取代I/O子系统成为性能瓶颈。别忘了Archive表比其他任何类型的表执行的物理I/O操作都要少。

较小的空间占用也能在你移植MySQL数据的时候发挥作用。当你需要把数据从一台MySQL服务器转移到另一台的时候,Archive表可以方便地移植到新的MySQL环境,你只需将保存Archive表的底层文件复制过去就可以了。

文件系统存储特性

  • 以zlib对表数据进行压缩,磁盘I/O更少(几Tinnodb表在archive中只需要几百兆)
  • 数据存储在.ARZ为后缀的文件中
  • .frm文件

功能特点

  • 只支持insert、replace和select
  • 支持行级锁和专用的缓存区,可实现高并发
  • 只允许在自增ID列上加索引
  • 支持分区,不支持事务处理

建立一张表

MySQL [test]> 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.06 sec)

插入和查询数据

MySQL [test]> insert into myarchive (c1,c2) values ('aa','bb'),('cc','dd');
Query OK, 2 rows affected (0.02 sec)
Records: 2  Duplicates: 0  Warnings: 0MySQL [test]> select * from myarchive;
+----+------+------+
| id | c1   | c2   |
+----+------+------+
|  1 | aa   | bb   |
|  2 | cc   | dd   |
+----+------+------+
2 rows in set (0.01 sec)

我们看到可以进行查询操作,现在看是否可以进行删除操作。

MySQL [test]> delete from myarchive where id = 1;
ERROR 1031 (HY000): Table storage engine for 'myarchive' doesn't have this option

更新操作

MySQL [test]> update myarchive  set c1='aaaa' where id =1;
ERROR 1031 (HY000): Table storage engine for 'myarchive' doesn't have this option

我们接着查看是否可以在非自增键上创建索引

MySQL [test]> create index idx_c1 on myarchive(c1);
ERROR 1069 (42000): Too many keys specified; max 1 keys allowed

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

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

MYSQL Archive存储引擎相关推荐

  1. 关于mysql archive存储引擎-专门存储审计和日志数据

    来源:http://60.29.242.49/?p=60 政府还有一个让数据库专家摊上更多事情的职能,就是安全控制和数据审计. 那些管理着海量数据仓库的企业官员常常得回答诸如"何人何时修改了 ...

  2. MySQL常用存储引擎之Archive

    现在我们来看看另外一种存储引擎,Archive存储引擎,Archive会缓存所有的写,并且利用对插入的行进行压缩,所以Archive存储引擎比MYISAM的表更加节约磁盘的IO,对于同样数量级的数据, ...

  3. MySQL常用存储引擎——Archive

    1,文件系统存储特点 会缓存所有的写并且利用zlib对插入的行进行压缩,所以Archive搜索引擎比MyISAM存储引擎的表,更加节约磁盘I/O,对于同样数量级的数据,Archive存储引擎比MyIS ...

  4. mysql各存储引擎的作用:Archive、Blackhole、CSV、Memory、Federated、Merge、NDB

    文章目录 1 Archive:用于数据存档 2 Blackhole:丢弃写操作,读操作会返回空内容 3 CSV:存储数据时,以逗号分隔各个数据项 4 Memory:置于内存的表 4.1 概述 4.2 ...

  5. mysql的存储引擎详解_Mysql存储引擎详解

    存储引擎的介绍 关系型数据库表是用来存储和组织信息的数据结构,可以将表理解为由行和列组成的表格. 由于表的类型不同,我们在实际开发过程中,就有可能需要各种各样的表,不同的表就意味着存储不同类型的数据, ...

  6. mysql支持的并发数_重学MySQL系列(五):谈谈对MySQL的存储引擎的理解

    原创作者,公众号[程序员读书],欢迎关注公众号,转载文章请注明出处哦. MySQL关于存储引擎的架构设计,相较于其他关系数据库管理系统,比如Oracle,SQL Server等数据库,这是MySQL最 ...

  7. Mysql数据库存储引擎--转

    原文地址:http://pangge.blog.51cto.com/6013757/1303893 简单介绍 存储引擎就是指表的类型.数据库的存储引擎决定了表在计算机中的存储方式.存储引擎的概念是My ...

  8. mysql之存储引擎和文件配置

    (查看系统服务,在运行里输入services.msc) 补充:将mysql做成系统服务:mysqld --install 取消:mysqld --romove 在服务中可以直接鼠标操作mysql服务的 ...

  9. mysql的存储引擎详解_MySQL常见存储引擎详解

    通过执行show engines命令查看MySQL中支持哪些存储引擎 MySQL存储引擎属性对比 设置表的存储引擎的方法 在my.cnf配置文件中设置default-storage-engine参数表 ...

最新文章

  1. WPF绘制自定义窗口
  2. python queue 多线程_Python如何实现并行的多线程?
  3. 为什么说 GraphQL 可以取代 REST API?
  4. hashCode()、equals()以及compareTo()方法的理解
  5. 切换表达式到Java吗?
  6. 纯css3制作的几个社交媒体网站的图标
  7. django 1.8 官方文档翻译: 2-6-3 提供初始数据
  8. Android7.1开机启动脚本
  9. CSS position属性---absolute与relative
  10. 新广告法涉及的敏感词列表
  11. COMSOL模拟气流可视化
  12. hook(useState、useEffect、useReducer)、context、React项目起始
  13. PS批量处理批量裁减不同尺寸图片教程(超详细教程 非常实用)-photoshop
  14. Android开发所需要的矩阵知识
  15. u盘安装原版win10
  16. Visual Studio 2022调节字体大小
  17. Android 从网页中跳转到APP
  18. 订单管理系统 订货系统平台建设三阶段分享
  19. 说说部署网站的奇葩事
  20. 家居家纺行业的进销存软件怎么选择,门店管理系统选择

热门文章

  1. NKU-OJ 可莉打丘丘人#179
  2. 2023.4.5.吉林长春.雾霾.
  3. msvcp100d.dll
  4. 在WinXP镜像中手工集成sata驱动。
  5. VSFTP 显示与系统时间不相符的解决方式
  6. 用java编程画机器猫_用JAVA编程:编写GUI程序,模拟龟兔赛跑游戏
  7. 【软考备考-综合知识】计算机系统知识
  8. Opencv 简单视频播放器
  9. 辞职度百特,我会想你的!
  10. Volatility2安装使用以及CTF比赛题目(复现)