Mysql-InnoDB索引:普通索引、主键索引、唯一索引、组合索引

本文详细对比了InnoDB和MyISAM两种Mysql存储引擎的差异,包括事务支持、外键、索引、锁粒度和硬盘存储结构。重点探讨了InnoDB的聚簇索引与非聚簇索引的工作原理,以及可能导致索引失效的场景,如最左前缀法则、大于号右边的索引和LIKE操作。
摘要由CSDN通过智能技术生成

InnoDB 和 MyISAM 的区别


事务方面

InnoDB支持事务,MyISAM不支持事务。这是Mysql将默认存储引擎从MyISAM变成InnoDB的重要原因之一

外键方面

InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MyISAM会失败

索引层面

InnoDB是聚集(聚簇)索引,MyISAM是非聚集(非聚簇)索引。

MyISAM 支持 FULLTEXT 类型的全文索引。

InnoDB不支持FULLTEXT类型的全文索引,但是InnoDB可以使用sphinx插件支持全文索引,并且效果更好。

锁粒度方面

InnoDB最小的锁粒度是行锁,MyISAM最小的锁粒度是表锁

一个更新语句会锁住整张表,导致其他查询和更新都会被阻塞,因此并发访问受限。

这也是Mysql将默认存储引擎从MyISAM变成InnoDB的重要原因之一

硬盘存储结构

MyISAM在硬盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。

  • .frm 文件存储 表的定义
  • 数据文件 的扩展名为 .MYD(MYData)
  • 索引文件 的扩展名为 .MYI (MYIndex)

InnoDB存储引擎存储数据库数据,一共有两个文件(没有专门保存数据的文件)

  • Frm文件:表的定义文件
  • <
  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值