MyISAM 和 InnoDB 有什么区别?

MySQL在5.5版本将默认存储引擎从MyISAM切换到InnoDB,因为InnoDB支持事务、外键和行级锁,提供更好的并发安全性。MyISAM适合计算密集型和读多写少的场景,而InnoDB适合需要事务处理和避免表锁定的情况。尽管InnoDB在某些性能指标上可能较弱,但其可靠性更适合高要求的业务。
摘要由CSDN通过智能技术生成

前言:MySQL 默认引擎变化

在 MySQL 5.5版本时,InnoDB 存储引擎取代了原先的引擎 MyISAM 成为新的默认存储引擎

那么我们要思考为什么 MySQL 开发者选择使用 InnoDB 呢?因为他们意识到了 MyISAM 引擎在许多方面的不足,以及一些对未来发展有局促性的缺陷,比如:

MyISAM 缺点

  • 不支持事务,不支持外键
  • 不支持行级锁,最小粒度为表级锁,易发生锁冲突
  • 崩溃后无法安全恢复

 随着科技的发展,现在大大小小的公司业务都会遇到一些并发安全的问题,倘若发生线程冲突造成数据读取/写入错误,会造成一定的后果,对用户体验也不好。所以在这种市场需求下 MySQL 也逐渐意识到并发安全的重要性,更换了对并发处理更好的 InnoDB 存储引擎,InnoDB 存储引擎弥补了 MyISAM 的并发性缺点,比如支持事务、外键、行级锁、安全恢复等。

适用场景不同

但是并不能代表 InnoDB 存储引擎是万能的,它在一些度方面不如  MyISAM ,以下是这两个引擎各自适合的场景:

MyISAM 适合 :

  1. count 偏多的计算(会默认计算并存储 count,不用每次都计算,提升了效率)
  2. 插入少,查询多
  3. 没有事务的需要

InnoDB 适合 : 

  1. 可靠性要求高、或者需要事务支持
  2. 表更新和查询频繁
  3. 易出现表锁定的场景

 支持功能不同

属性MyISAMInnoDB
事务        不支持支持
锁粒度表级锁行级锁
存储拆分文件表空间
隔离等级所有
数据主键
MVCC不支持支持
缓存数据记录
数据库崩溃后的安全恢复不支持支持
性能

 

 

 

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值