InnoDB引擎和MyISAM引擎的性能对比

介绍:InnoDB和MyISAM作为MySQL数据库中最主要最常用的存储引擎,各有所长。MySQL5.5版本之前,MyISAM是MySQL默认的存储引擎,5.5之后,MySQL的默认引擎变成了InnoDB。对于这两种存储引擎的选择,根据项目应用特点来权衡。(建议尽量不要混合使用多种存储引擎,容易带来更复杂的问题)。

MyISAM:支持全文索引,基于分词创建的索引,利于复杂的查询,但不是事务安全的,也不支持外键。每张MyISAM表存放在3个文件中:frm文件存放表结构;数据文件是MYD(MYData);索引文件是MYI(MYIndex)。对于MyISAM表,它可以手工或自动执行检查或修复操作。

InnoDB:是事务型引擎,支持回滚,具有奔溃恢复能力,多版本并发控制(MVCC)、支持ACID、支持行级锁(不是绝对的,一个语句没有用到索引,InnoDB表同样会锁全表)。
InnoDB工作原理:就是把所有数据放到内存,被用户读写,这样就大大增加性能,内存中读写比磁盘中快得多啊!它的设计理论就是充分利用内存,减少磁盘I/O使用率。

MyISAM和InnoDB之间的主要区别有以下几点

  • MyISAM是非事务安全型,InnoDB是事务安全的,也就是ACID事务支持;
  • MyISAM是表级锁,锁开销小,而InnoDB支持行级锁,锁管理开销大,但是支持更好的并发写操作;
  • MyISAM支持全文索引,InnoDB不支持,但是5.6之后提供支持了;
  • MyISAM简单,管理方便,因此效率上优于InnoDB,小应用可以考虑用MyISAM;
  • MyISAM表是保存成文件的形式,在跨平台的数据转移中使用MyISAM可以省去不少麻烦;
  • InnoDB比MyISAM更加安全,可以在保证数据不丢失的情况下,切换非事务表到事务表。

总结:其实有两个选择,一般都是从安全和性能两方面来考虑,技术在开始一般对性能要求低,但是随着业务、数据慢慢增加,不得不考虑性能了。

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值