MySQL中MyISAM和InnoDB的区别

MyISAM和InnoDB的区别

  1. MyISAM只支持表级锁,InnoDB支持行级锁
  2. MyISAM不支持事务,InnoDB支持事务
  3. MyISAM不支持外键,InnoDB支持外键
  4. MyISAM支持全文索引,InnoDB不支持全文索引
  5. MyISAM本身就存储了表的数据行数,InnoDB则没有,查询总行数MyISAM更快,但是加了查询条件之后两者就没有区别了

MyISAM和InnoDB的选择:

  1. 看是否需要事务支持?
  2. 是否需要外键支持?
  3. 是否需要全文索引?

InnoDB的行锁模式有:共享锁,排他锁,意向共享锁(表锁),意向排他锁(表锁),间隙锁。
注意:当语句没有使用索引,InnoDB不能确定操作的行,这个时候就要使用意向锁,也就是表锁。

聚簇索引和非聚簇索引

聚簇索引主要应用于InnoDB
非聚簇索引主要应用于MyISAM

聚集索引,表数据按照索引的顺序来存储的,也就是索引项的顺序与表中记录的物理顺序一致。对于聚集索引,叶子节点即存储了真实的数据行,不再有另外单独的数据页。在一张表上最多只能创建一个聚集索引,因为真实数据的物理顺序只能有一种。

非聚集索引,表数据存储顺序与索引顺序无关。对于非聚集索引,叶子节点包含索引字段值及指向数据页、数据行的逻辑指针,其行数量与数据表行数据量一致。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值