一文搞懂 MyISAM 与 InnoDB 的区别

该题应该从下面四个维度来回答

  1. 事务
  2. 外键
  3. 索引
  4. count
  5. 日志
  6. 主键
  7. 存储文件

Innodb 支持事务,MyISAM 不支持

Innodb 支持外键,MyISAM 不支持

InnoDB 是聚集索引,MyISAM 是非聚集索引

InnoDB 是聚集索引,使用B+Tree作为索引结构,数据文件是和索引绑在一起的,必须要有主键。MyISAM 是非聚集索引,也是使用B+Tree作为索引结构,索引和数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。`

InnoDB 不保存表的具体行数,MyISAM 用一个变量保存了整个表的行数

Innodb 有 redolog 日志文件,MyISAM 没有

Innodb存储文件有frm、ibd,而Myisam是frm、MYD、MYI

InnoDB 支持表、行锁,而 MyISAM 支持表级锁

InnoDB 必须有唯一索引(主键),如果没有指定的话 InnoDB 会自己生成一个隐藏列Row_id来充当默认主键,MyISAM 可以没有

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值