mysql存储引擎

文章介绍了数据库中的两种主要存储引擎InnoDB和MyISAM的特点。InnoDB是默认引擎,支持事务和行级锁,适合高并发环境;MyISAM不支持事务,锁整个表,适合读和插入为主、并发性要求不高的场景。其他引擎如Archive用于数据存档,Memory引擎则将数据存储在内存中,适用于临时和快速访问的小型数据。
摘要由CSDN通过智能技术生成

存储引擎:存储数据,建立索引,更新\查询数据等技术的实现方式。
存储引擎是基于表的。

show engines;
show variables like '%storage_engine%';

INNODB

# 5.5之后,默认
# 支持事务
# 行级锁,提高并发访问性能
# 支持外键约束,保证数据完整性和正确性

# 涉及到的磁盘文件
frm:存储表结构
ibd:表空间文件,存储数据和索引

在这里插入图片描述

MYISAM

# 5.5之前的默认引擎
# 不支持事务,不支持外键
# 支持表锁,不支持行锁
# 访问速度快

# 涉及到的磁盘文件
frm:存储表结构
MYD:存储数据
MYI:存储索引

# 适合:
应用以读和插入为主,且对事务完整性,并发性要求不高
现在被mongodb替代

即使操作一条记录也会锁住整个表,不适合高并发的操作
缓冲池只缓存索引,不缓存数据
节省资源,消耗少,简单业务
崩溃后无法安全恢复
针对数据统计有额外的常数存储,故而count(*)的查询效率很高
在这里插入图片描述

其他引擎

Archive用于数据存档,只支持插入和查询,在5.5之后支持索引
支持auto_increment列属性,auto_increment列可以具有唯一索引或非唯一索引
尝试在任何其他列上创建索引会导致错误
拥有很好的压缩机制,使用zlib压缩库
应用场景:日志和数据收集,有很高的插入速度,查询的支持较差
CSV引擎可以将CSV文件作为MYSQL的表来处理,不支持索引
数据文件是CSV格式
Memory引擎,表结构存储到磁盘上,将数据存储到内存里
要求存储的数据是长度不变的类型
支持哈希索引和B+树索引
Memory表的大小是受限制的,取决于两个参数,max_rows和max_heap_table_size(default 16MB)
应用场景:目标数据较小,数据是临时的,需要频繁访问

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值