InnoDB和MyISAM的区别

本文详细介绍了InnoDB和MyISAM两种MySQL存储引擎的差异。InnoDB支持事务处理和外键,采用聚集索引,行锁设计,适合读写频繁的场景;而MyISAM不支持事务,非聚集索引,全表锁,但在纯查询场景下效率较高。了解这些特性有助于选择合适的存储引擎来优化数据库性能。

(MyISAM)流程 :索引一般是指表的索引,索引存储在MYI文件中,检索时先检索MYI文件,取到具体指针(data),再去MYD文件中取数据

(InnoDB)流程: 

聚集索引:InnoDB使用,叶节点包含了完整的数据记录,而不是仅仅存储数据所在的磁盘位置的指针.

非聚集索引: 索引列仅存储具体元素的指针,需要去MYD文件去取数据

 使用InnoDB,一般推荐建立主键,并且主键自增,如果不建立主键,那么InnoDb会自动选择一列值都不相同的列,用来维护B+tree,如果选不到,InnoDB会自动建立一个row_id(隐藏列),用来维护树结构       

1.InnoDB默认是支持事务的,另一个 不支持事务。 这是被淘汰的最重要原因吧,

2.InnoDB支持外键,另一个不支持。

3. InnoDB是聚集索引,另一个是非聚集索引。

4.InnoDB不保存表的具体行数,select count(*)需要全表扫描, 而MyISAM有个函数,读取一下就知道了

5.InnoDB最小的锁粒度是行锁,MYSAM最小的是表锁,性能不太行。

6.读写修改频繁,用InnoDB,仅仅查询用MyISAM,效率更高。取决于业务

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值