(3)MySQL是如何通过【索引】找到一条【真实的数据】

这篇博客对比了MySQL的MYISAM和INNODB存储引擎,重点讨论了两者在索引查询数据过程中的区别。MYISAM使用非聚簇索引,查询时通过索引找到主键物理地址,再到数据文件中获取数据。而INNODB采用聚簇索引,主键索引的叶子节点直接存储整行数据,辅助索引则包含主键信息用于回表查找。文章强调了主键查询的效率优势和覆盖索引的重要性。
摘要由CSDN通过智能技术生成

之前稍微总结了一下mysql为什么用B+树的数据结构存储以及联合索引为何失效的原理,本文是索引三部曲的最后一文。总结一下,mysql底层是如何通过索引找到一条存储的数据的。
这个总结,不可避免的就要对比一下mysql的两大存储引擎MyISAM和innodb了。

对比MYISAM和INNODB

1、事务方面

InnoDB支持事务,MyISAM不支持事务,这是Mysql将默认的存储引擎从MyISAM变成InnoDB的重要原因之一,数据库不支持事务确实孤儿了。

2、外键方面

I支持外键,M不支持外键,所以对于包含外键的I表转为M会失败。

3、索引层面

I是聚集(聚簇)索引,M是非聚集(非聚簇)索引,这也是本文的重点。
M支持FULLTEXT类型的全文索引,I不支持,但是I可以使用sphinx插件支持全文索引,而且效果很好,同时mysql在5.7以后,innodb也支持FULLTEXT类型的全文索引了。

4、锁粒度方面

I最小的锁粒度是行锁,M是表锁,这个表锁很孤儿ÿ
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值