InnoDB和MyIASAM的区别


JAVA后端开发知识总结(持续更新…)


InnoDB和MyIASAM的区别



一、查看引擎的命令

  • 查看所有存储引擎

show engines;

在这里插入图片描述

  • 查看默认的存储引擎

show variables like ‘%storage_engine%’;

在这里插入图片描述

  • 查看表的存储引擎

show table status like “xxx” ;

二、InnoDB和MyISAM对比

  1. :InnoDB 支持行级锁和表级锁,默认为行级锁。MyISAM 只支持表级锁,在读时对所有相关的表采用共享锁,在写时采用排他锁。
  2. 事务:InnoDB 提供 事务支持 的高级数据库功能, 具有事务、回滚等的事务安全型表。MyISAM 强调性能,每次查询具有原子性,其执行速度比InnoDB更快,但是不提供事务支持
  3. 外键:InnoDB支持外键。MyISAM不支持外键。
  4. 并发:InnoDB 支持 MVCC 来应对高并发事务,实现了四个隔离级别,默认REPEATABLE READ(可重复读)。
  5. 崩溃恢复:InnoDB 支持崩溃后的安全恢复,MyISAM不支持。
  6. 备份:InnoDB 支持热备份,MyISAM不支持。
  7. 数据存储:InnoDB的数据存储在表空间中,它是由一系列的数据文件组成,其数据文件本身就是索引文件。MyISAM则是分开存储索引和数据到索引文件和数据文件。
  8. 索引:InnoDB 是基于聚簇索引建立的,数据文件和索引绑在一起,必须要有主键,通过主键索引效率很高。辅助索引需要两次查询,先查询到主键,再通过主键查询到数据。MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针,主键索引和辅助索引是独立的。
  9. 全文索引:MySQL 5.6 及以后,MyISAM 和 InnoDB 存储引擎均支持全文索引。
  10. 其它:InnoDB 不保存表的总行数,执行 select count(*) from table 时需要全表扫描。MyISAM 用一个变量保存表的总行数,查总行数速度很快。<
  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值