数据库引擎

本文介绍了三种常见的数据库引擎:InnoDB(支持事务、行级锁定、缓存索引和数据、支持外键,资源消耗大)、MyISAM(不支持事务、表级锁定、只缓存索引,读取速度快)和Memery(内存存储、支持数据类型有限、表级锁、数据易丢失)。各引擎在事务处理、锁定机制、缓存策略和适用场景上有显著差异。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

数据库引擎
1.InnoDB
支持事务-银行卡转账,支持4个事务隔离(ACID)级别
行级锁定(更新时锁定当前行)
读写阻塞与事务隔离级别相关
既能缓存索引又能缓存数据
支持外键
InnoDB更消耗资源,读取速度没有MyISAM快
InnoDB中存在着缓冲管理,通过缓冲池,将索引和数据全部缓存起来,加快查询的速度;
对于InnoDB类型的表,其数据的物理组织形式是聚簇表。所有的数据按照主键来组织。数据和索引放在一块,都位于B+数的叶子节点上;

2.MyISAM(MySQL默认)
不支持事务
表级锁定(更新时锁定整个表)
读写互相阻塞(写入时阻塞读入、读时阻塞写入;但是读不会互相阻塞)
只会缓存索引(通过key_buffer_size缓存索引,但是不会缓存数据)
不支持外键
读取速度快

3.Memery
支持的数据类型有限制,比如:不支持TEXT和BLOB类型(长度不固定),对于字符串类型的数据,只支持固定长度的行,VARCHAR会被自动存储为CHAR类型;
支持的锁粒度为表级锁。故访问量较大时,表级锁会成为MEMORY存储引擎的瓶颈;
由于数据是存放在内存中,一旦服务器出现故障,数据都会丢失
查询的时候,如果有用到临时表,而且临时表中有BLOB,TEXT类型的字段,那么这个临时表就会转化为MyISAM类型的表,性能会急剧降低;
默认使用hash索引。
如果一个内部表很大,会转化为磁盘表。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值