MySQL常用存储引擎之Archive
现在我们来看看另外一种存储引擎,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相关推荐
- MySQL常用存储引擎详解
MySQL常用存储引擎详解 一.什么是存储引擎 二.掌握存储引擎的重要性 三.MySQL常用的存储引擎有哪些 四.存储引擎的特性 1.InnoDB 2.MyISAM 3.MEMORY 4.ARCHIV ...
- MySQL常用存储引擎之Innodb
在MYSQL5.5版本之后,具体是在5.58版本之后,InnoDB代替MYISAM称为MYSQL的默认存储引擎,说实话呢,是一个非常重要的事情,之前在使用MYSQL时,说别人使用InnoDB,而不用m ...
- MySQL常用存储引擎——Archive
1,文件系统存储特点 会缓存所有的写并且利用zlib对插入的行进行压缩,所以Archive搜索引擎比MyISAM存储引擎的表,更加节约磁盘I/O,对于同样数量级的数据,Archive存储引擎比MyIS ...
- MySQL - MySQL 常用存储引擎简介
# 前言 存储引擎在MySQL底层以组件的形式提供,不同的存储引擎提供的存储机制.索引的存放方式和锁粒度等均不相同. 存储引擎基于数据表, 而不是基于数据库, 请根据业务需求为数据表选择最优的存储引擎 ...
- MySQL常用存储引擎之Federated
最后呢要给大家介绍的存储引擎呢,是Federated这种存储引擎,常常有人会问MYSQL是否像SQL Server服务器或者ORACLE网关的功能,从MYSQL服务器本身来说呢,他并没有提供连接服务器 ...
- MySQL常用存储引擎之Memory
看一下MYSQL存储引擎的Memory存储引擎,Memory存储引擎也称之为HEAP存储引擎,从这个存储引擎的名字中呢,可以知道,所有的数据都保存在内存中的,这就意味着呢,这种存储引擎表的数据呢,一旦 ...
- MySQL常用存储引擎之CSV
首先我们来看CSV这种存储引擎,CSV存储引擎呢,可以讲CSV文件,作为MYSQL的表来处理,这种存储引擎的存储格式呢,就是普通的CSV文件,CSV存储引擎的数据存储方式非常的有特点,如果我们把数据存 ...
- MySQL常用存储引擎之MyISAM
我们先来看看MYISAM这种存储引擎,MYISAM存储引擎呢,是MYSQL5.5以及之前的版本,在MYSQL数据库默认的存储引擎,由于这个原因呢,现在还有大量的服务器使用MYISAM的表,另外MyIS ...
- MySQL常用存储引擎
MyISAM: MySQL默认数据库引擎,不支持事务.外键,速度快,用于无事务要求或者select.insert为主的场景. 会创建3个文件.frm(存储表定义),.MYD(MYData,存储数据), ...
最新文章
- mfc 内嵌 本地html,MFC程序中内嵌网页,附示例工程
- linux进程间通信-管道
- tomcat内存溢出,修改设置
- java运行时内存分配详解
- 微软更新补丁下载地址
- 用Python分析了我的微信好友,原来我身边都是这样的人……绝了
- meterpreter下抓取windows系统明文密码实验
- Spring 整合Hibernate 开发实例
- AutoJs学习-传感器图像
- 技术人员的狂欢 | 看雪2020第四届安全开发者峰会顺利落幕
- 自动添加芝麻代理白名单的方法
- keil5 c语言运行
- Java-Stream流,异常捕获
- 新三板的合作门槛是多少?
- esp32 wifi 连接
- keil MDK 新建项目教程
- (十九)WebGIS中I查询的原理及设计(包含AGS、GeoServer、Supermap)
- Redis添加历史浏览记录
- 不借助第三个变量交换两个整数
- IDEA连接Mysql失败:下载驱动失败,Failed todownload Cannot download Read timed out