MySQL存储引擎

MySQL存储引擎

MySQL 提供不同的技术存储数据,这些技术使用不同的数据存储机制、索引建立方式、锁方式来完成数据的构建,这些技术统称为存储引擎。

MySQL 至少支持 9 种存储引擎,目前最受关注的是 InnoDB 和 MyISAM 存储引擎

MyISAM

  • MySQL5.5版之前的默认数据库引擎,性能不错,而且提供了大量的特性,包括全文索引、压缩、空间函数等
  • 但MyISAM不支持事务和行级锁, 而且崩溃后无法安全恢复。

InnoDB

  • 由于MyISAM的不足,MySQL引入了InnoDB (事务性数据库引擎)
  • MySQL 5. 5版本后默认的存储引擎为InnoDB,我们使用的基本都是InnoDB 存储引擎
  • 但是在某些情况下使用MyISAM 也是合适的比如读操作非常频繁的情况下。

区别

  • 是否支持行级锁: MyISAM 只有表级锁, 而InnoDB 支持行级锁和表级锁 ,默认为行级锁。
  • 是否支持事务和崩溃后的安全恢复: MyISAM 强调的是性能,每次查询具有原子性,其执行速度比InnoDB更快,但是不提供事务支持。
  • InnoDB提供事务支持事务,外部键等高级数据库功能。具有事务、回滚和崩溃修复能力的事务安全表。
  • 是否支持外键: MyISAM不支持,而InnoDB支持。
  • 是否支持MVCC :InnoDB支持,MyISAM不支持。应对高并发事务,MVCC比单纯的加锁更高效;
  • MVCC只在 读取已提交和可重复读两个隔离级别下工作;
  • MVCC可以使用乐观锁 和悲观锁来实现

使用场景

  • MyISAM 对于不支持事务并且存在大量 SELECT 的读场景比较合适;

  • 如果业务代码中要支持事务,必须选择 InnoDB 存储引擎;

  • 如果业务代码中要支持外键,必须选择 InnoDB 存储引擎;

评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值