mysql常用的存储引擎Archive和memory的特点注意事项使用场景

Achive存储引擎文件存储的特点
会缓存所有的写,并用zlib对表的数据进行压缩,相比MyISAM会更加节约磁盘io,比myisam和innodb更见节约磁盘空间,一个几T的表可能只要几百M的存储空间,创建表的时候会产生两个文件一个是数据文件是以ARZ为后缀的文件,一个是frm后缀存储表结构信息
Archive存储引擎的特点
只支持insert 和select操作,可以实现高并发的插入,支持在自增id上建立索引
1.执行update 和delete操作不成功
在这里插入图片描述
在不是auto increasment列上建立索引不成立
在这里插入图片描述
Archive使用的场景:
因为不支持数据的修改并且占用内存小,因此在日志和数据采集的时候可以使用

存储引擎Memory也称为Heap存储引擎
Memory文件系统存储特点
所有的数据都保存在内存中,这种存储引擎的表易失性,一旦服务器重启,所有Memory存储引擎的表数据会消失但是表结构会保存下来,Memory存储引擎的表并不存在数据文件,而只是存在一个frm文件,frm文件mysql服务器表结构的文件,这个表结构文件保存在磁盘中,而memmory数据文件是保存在内存中的,memory引擎的io效率要比MyISAM高很多,因为MyISAM只有索引在内存中。
memory存储引擎的功能特点
1.支持两种索引类型:
Hash索引 等值查找
Btree索引 范围查找
create index idx_字段名 using btree on 表名(字段名)
SHOW INDEX FROM document
显示表中使用的索引
2.所有字段的存储都是固定的长度char(10),不支持大字段类型text blog
4.表使用的是表级锁,innodb也会把数据存在内存中,但是是行级锁,所以更好
5.memeroy存储引擎的表的最大大小由max_heap_table_size参数决定,这个参数的默认值只有16M,这个参数的修改是对已经存在的memory存储引擎的表的修改,所以说要对已经存在的memory表生效的话,要进行表的重建。
Memory中容易混淆的内容
mysql常用的存储引擎Archive和memory的特点注意事项使用场景_第1张图片
临时表中由查询优化器创建的临时表和用户自己创建的临时表
memory是所有线程都是用的

Mysql的使用场景:
因为memeory存储引擎使用hash索引对于等值查找是很高效的,用于查找邮编和地区对应关系表,使用等值查询的
由于易失性,可以用于存储在分析中产生的中间表。
因为易失性,所以使用memroy存储引擎的表一定要是可以再生的或者是不需要的,

你可能感兴趣的:(mysql常用的存储引擎Archive和memory的特点注意事项使用场景)