现在我们来看看另外一种存储引擎,Archive存储引擎,Archive会缓存所有的写,并且利用对插入的行进行压缩,所以Archive存储引擎比MYISAM的表更加节约磁盘的IO,对于同样数量级的数据,Archive比MYISAM,Innodb更加节省磁盘空间,如果把数据存储到Archive存储引擎中呢,可能只需要几百兆的存储空间,就可以了,Archive存储的表呢,文件是以ARZ为后缀的文件,另外和其他存储引擎一样,Archive存储引擎呢,也存在一个以frm为后缀的文件,用于存储这种表的结构信息,这就是Archive在文件系统中,存储的一些特点,那我们接下来看看存储引擎在功能上有哪些特点

首先和MYISAM,Innodb最大的不同在于,Archive支持insert和select操作,Archive存储引擎支持行级锁,和缓冲区,所以可以实现高并发的插入,这种存储引擎在某些方面,模仿了事务引擎的一些特点,但是Archive本身并不是一个事务的存储引擎,这个存储引擎的第二个特点呢,只支持在自增ID列上建立的索引,而无法在其他列上建立的索引,下面我们你还是回到我们的演示系统中,来看一下Archive存储引擎的具体表现,我们切换到我们的演示系统中

同样我们还是要建立一个Archive表,表名就以myarchive命名吧,首先我们要加入一列id列,这个id列是具有自增属性的,我们前面说到了,它是可以在自增列上来建立索引的,所以我们要来验证这一点,另外还有一个c1列,它是varchar的这个列,还有一个c2列,这个列是char的列,同时我要指定他的索引,是id,并且我们使用的是Archive存储引擎,这个时候我们就完成了表的建立工作create table myarchive(id int auto_increment not null,c1 varchar(10),c2 char(10),key(id)) engine=archive;

这里我们有两点需要注意,其实刚才已经说过了,第一种就是我们建立的id列,这一列是有自增属性的,而在MYSQL的create语句中呢,自增的列都是需要写在索引中的,所以我们在建表的同时呢,指定了我们的索引,另外呢存储引擎呢,是Archive存储引擎,我们已经指定了存储引擎的类型,建立好这个表之后呢,我们可以先看一下这个表是如何存储的,我们可以看到,以myarchive为开头的文件有哪些呢ls -lh myarchive.*

一共只有两个,这跟我们刚才的想法是一样的,首先一个是以ARZ为结尾的文件呢,这个用来存储数据的一个文件,除了ARZ文件呢,另一个文件就是frm文件,这个文件之前已经说了很多次了,就是MYSQL服务器层用于存储表结构的文件,下面我们再来看一下,Archive存储引擎功能上的一些特点,首先我们向这个表中插入一些数据,然后可以看是否对这些数据进行一些更新操作,删除操作,首先我们随便来插入一些数据吧,那就是c1,c2两列,这个数据随便写就好了,我们已经给这个表插入了两列数据insert into myarchive(c1,c2) values('aa','bb'),('cc','dd');

我们对这个数据进行删除操作,看看是否可以达到我们的目的,大家可以看到,我们在删除这个表中的一列数据时呢,他返回了一个1031的错误,说明这个表是不支持这种操作的

同样更新操作我们也要试一下,同样也会返回相同的错误update myarchive set c1='aaaa' where id = 1;

这就验证了我们之前所说的,只支持insert和select操作,而对于更新和删除操作呢,它是不支持的,那我们接下来看看他的另外一个特点就是,同样也返回1069的错误create index idx_c1 on myarchive(c1);

这里对Archive引擎的功能的分析和演示呢,我们可以看一下适用的一些场景,我们可以知道,Achive存储引擎呢,是无法在OLTP应用中使用的,他不支持对数据的修改,而我们OLTP中,一定会对数据进行修改的,但是对于数据仓库的应用呢,或者一些特殊的表还是有用的,记录日志的表,或者日志采集类的表,由于这种表要存储大量的数据,所以就比较适用于Archive存储引擎,Archive存储引擎在所有引擎中是占用最少的,但是还是要注意,即使是在日志采集和数据应用中呢,Archive引擎也是无法对数据进行删除和更新的,所以在记录日志,我们同样要对数据进行修改的话,可能也无法使用Archive存储引擎

MySQL常用存储引擎之Archive相关推荐

  1. MySQL常用存储引擎详解

    MySQL常用存储引擎详解 一.什么是存储引擎 二.掌握存储引擎的重要性 三.MySQL常用的存储引擎有哪些 四.存储引擎的特性 1.InnoDB 2.MyISAM 3.MEMORY 4.ARCHIV ...

  2. MySQL常用存储引擎之Innodb

    在MYSQL5.5版本之后,具体是在5.58版本之后,InnoDB代替MYISAM称为MYSQL的默认存储引擎,说实话呢,是一个非常重要的事情,之前在使用MYSQL时,说别人使用InnoDB,而不用m ...

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

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

  4. MySQL - MySQL 常用存储引擎简介

    # 前言 存储引擎在MySQL底层以组件的形式提供,不同的存储引擎提供的存储机制.索引的存放方式和锁粒度等均不相同. 存储引擎基于数据表, 而不是基于数据库, 请根据业务需求为数据表选择最优的存储引擎 ...

  5. MySQL常用存储引擎之Federated

    最后呢要给大家介绍的存储引擎呢,是Federated这种存储引擎,常常有人会问MYSQL是否像SQL Server服务器或者ORACLE网关的功能,从MYSQL服务器本身来说呢,他并没有提供连接服务器 ...

  6. MySQL常用存储引擎之Memory

    看一下MYSQL存储引擎的Memory存储引擎,Memory存储引擎也称之为HEAP存储引擎,从这个存储引擎的名字中呢,可以知道,所有的数据都保存在内存中的,这就意味着呢,这种存储引擎表的数据呢,一旦 ...

  7. MySQL常用存储引擎之CSV

    首先我们来看CSV这种存储引擎,CSV存储引擎呢,可以讲CSV文件,作为MYSQL的表来处理,这种存储引擎的存储格式呢,就是普通的CSV文件,CSV存储引擎的数据存储方式非常的有特点,如果我们把数据存 ...

  8. MySQL常用存储引擎之MyISAM

    我们先来看看MYISAM这种存储引擎,MYISAM存储引擎呢,是MYSQL5.5以及之前的版本,在MYSQL数据库默认的存储引擎,由于这个原因呢,现在还有大量的服务器使用MYISAM的表,另外MyIS ...

  9. MySQL常用存储引擎

    MyISAM: MySQL默认数据库引擎,不支持事务.外键,速度快,用于无事务要求或者select.insert为主的场景. 会创建3个文件.frm(存储表定义),.MYD(MYData,存储数据), ...

最新文章

  1. mfc 内嵌 本地html,MFC程序中内嵌网页,附示例工程
  2. linux进程间通信-管道
  3. tomcat内存溢出,修改设置
  4. java运行时内存分配详解
  5. 微软更新补丁下载地址
  6. 用Python分析了我的微信好友,原来我身边都是这样的人……绝了
  7. meterpreter下抓取windows系统明文密码实验
  8. Spring 整合Hibernate 开发实例
  9. AutoJs学习-传感器图像
  10. 技术人员的狂欢 | 看雪2020第四届安全开发者峰会顺利落幕
  11. 自动添加芝麻代理白名单的方法
  12. keil5 c语言运行
  13. Java-Stream流,异常捕获
  14. 新三板的合作门槛是多少?
  15. esp32 wifi 连接
  16. keil MDK 新建项目教程
  17. (十九)WebGIS中I查询的原理及设计(包含AGS、GeoServer、Supermap)
  18. Redis添加历史浏览记录
  19. 不借助第三个变量交换两个整数
  20. IDEA连接Mysql失败:下载驱动失败,Failed todownload Cannot download Read timed out

热门文章

  1. 莱芜长运公共交通有限公司简介
  2. String对象中常用的方法
  3. 创建xmlhttp对象
  4. 【大话数据结构算法】希尔排序
  5. php面试专题---2、常量及数据类型考点
  6. 使用Spring工厂模式管理多个类实现同一个接口
  7. Unity Mono脚本 加密
  8. AspNet.WebAPI.OData.ODataPQ实现WebAPI的分页查询服务-(个人拙笔)
  9. Windows Azure 真实案例:CCH 财政服务独立软件开发商(ISV)通过托管服务获得了灵活性并节省成本...
  10. Colored Sticks--POJ 2513