MySQL的数据库引擎

MySQL的数据库引擎

InnoDB

  1. 使用B+树作为底层数据结构:
    • B+树的叶子节点存储的是每一条记录(主键索引或者聚簇索引),查询效率高,一次索引
    • 叶子节点存储的是主键的值,查询效率较高,但是因为涉及到回表,所以比聚簇索引慢。它先根据其他索引即聚簇索引获取到主键值,然后在根据主键值去获取整个完整的记录,这个过程就是回表。
    • 但是,如果覆盖索引的话就可以避免多次查询,这也是索引优化的方式之一。覆盖索引就是指你查询的数据全部包含在索引列中,也就是select语句后面的列全部包含在你where关键词后面的列中。这样就避免了二次查找。
  2. InnoDB搜索引擎支持事务处理
  3. MySQL中唯一支持外键的引擎
  4. 不保存表的具体行数:因为INnoDB支持事务处理,它的count会统计对于当前事务而言的行数而不是全表的行数,所以select * from table必须是全表扫描
  5. 支持表级锁和行级锁,但是行锁是基于索引的,所以行锁的前提是命中索引
  6. 不支持全文本索引
  7. 必须有主键

MyISAM

  1. 使用B+树作为底层数据结构:
    索引和数据是分离的,.frm存储表定义.MYD保存的是数据而.MYI保存的是索引。因此具有查询速度比较快
    非聚簇索引,主键索引和辅助索引是相互独立的,索引保存的数据文件的地址指针。
  2. 支持全文本索引
    FULLTEXT(列名) 列必须是字符串列,配合MATCH()和AGAINST()进行匹配查找
    速度比较快
  3. 不支持事务处理
  4. 不支持外键
  5. 保存表的具体行数,所以执行select * from table,只需要读出数据即可,速度很快
  6. 仅支持表级锁
  7. 可支持压缩查询
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值