InnoDB 和 MyISAM 对比

InnoDB
  1. 支持事务, InnoDB实现了四个标准的隔离级别,默认级别是REPEATABLE READ(可重复读)
  2. 支持行锁和表锁
  3. 表基于聚簇索引创建
  4. .frm文件存储表结构, .ibd文件存储索引和数据
  5. 支持外键
  6. 不保存表的具体行数,当没有合适的索引时,select count(*) 需要扫描整个表
  7. 通过MVCC支持高并发
MyISAM
  1. 不支持事务
  2. 只支持表锁,不支持行锁,一个更新语句会锁住整张表,会导致其他查询和更新阻塞,效率低
  3. 崩溃后无法安全恢复
  4. .frm文件存储表结构, .MYD存储数据文件, .MYI存储索引文件
  5. 存储表的具体行数
  6. 支持全文索引,即使时BLOB和TEXT等长字段,也可以基于前500个字符创建索引
  7. 不支持外键
如何选择
  1. 是否需要支持事务

    如果应用需要支持事务,那么InnoDB时目前最稳定并且经过验证的选择,如果不需要支持事务,并且主要时select和insert操作,那么MyISAM是不错的选择

  2. 备份

    备份需求也会影响存储引擎选择,如果需要在线热备份,那么选择InnoDB是最基本的要求

  3. 崩溃恢复

    MyISAM崩溃后发生损坏的概率比InnoDB要高很多,而且恢复速度也要慢,因此即使不需要使用事务支持,也有很多人选择InnoDB引擎,这是一个最主要的因素

  4. 特有的特性

    有些应用可能以来存储引擎的特性,比如很多应用以来聚簇索引的优化,另外,MySQL只有MyISAM支持地理空间搜索,应该综合考虑各个存储引擎的特性来进行选择

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值