MyISAM 和 InnoDB 的区别

本文对比了MySQL中两种存储引擎MyISAM与InnoDB的特性,包括主外键支持、事务处理、锁定机制、缓存策略及表空间大小等。针对不同应用场景推荐合适的存储引擎。

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

对比项MyISAMInnoDB
主外键不支持支持
事务不支持支持
表锁,操作一条记录也会锁住整个表,不适合高并发行锁,操作只锁一行,不影响其他行,适合高并发
缓存只缓存索引,不缓存数据缓存索引和数据,对内存要求高
表空间
关注点性能事务

关键是前两条。InnoDB把每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务。

InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快。

如果表中绝大多数都只是读查询,可以考虑MyISAM;如果写操作多或者读写都挺频繁,请使用InnoDB。如果数据库平台要达到高稳定性,方便的扩展性和高可用性来说的话,MyISAM绝对是首选。系统奔溃后,MyISAM恢复起来更困难。MySQL5.5版本开始Innodb已经成为Mysql的默认引擎。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值