美文网首页数据库
MySQL存储引擎InnoDB和MyISAM对比总结

MySQL存储引擎InnoDB和MyISAM对比总结

作者: jemmm | 来源:发表于2017-09-04 19:18 被阅读286次

MySQL 有多种存储引擎,目前常用的是 MyISAM 和 InnoDB 这两个引擎,除了这两个引擎以为还有许多其他引擎,有官方的,也有一些公司自己研发的。这篇文章主要简单概述一下常用常见的 MySQL 引擎,一则这是面试中常被问到的问题,二则这也是数据库设计中不可忽略的问题,用合适的引擎可以更好的适应业务场景,提高业务效率。


InnoDB引擎

InnoDB是一个事务型的存储引擎,支持回滚,设计目标是处理大数量数据时提供高性能的服务,它在运行时会在内存中建立缓冲池,用于缓冲数据和索引。

InnoDB引擎优点

1.支持事务处理、ACID事务特性;

2.实现了SQL标准的四种隔离级别;

3.支持行级锁和外键约束;

4.可以利用事务日志进行数据恢复。

5.锁级别为行锁,行锁优点是适用于高并发的频繁表修改,高并发是性能优于 MyISAM。缺点是系统消耗较大。

6.索引不仅缓存自身,也缓存数据,相比 MyISAM 需要更大的内存。

InnoDB引擎缺点

不支持FULLTEXT类型的索引,因为它没有保存表的行数,当使用COUNT统计时会扫描全表。

InnoDB引擎适用场景

1.需要事务的操作;

2.更新数据需要使用行级锁;

3.大数据量读写;

4.大型互联网应用。


MyISAM引擎

MyISAM 是 MySQL 5.5.5 之前的默认引擎,它的设计目标是快速读取。

MyISAM引擎优点

1.高性能读取;

2.因为它保存了表的行数,当使用COUNT统计时不会扫描全表;

MyISAM引擎缺点

1.锁级别为表锁,表锁优点是开销小,加锁快;缺点是锁粒度大,发生锁冲动概率较高,容纳并发能力低,这个引擎适合查询为主的业务。

2.此引擎不支持事务,也不支持外键。

3.INSERT和UPDATE操作需要锁定整个表;

4.它存储表的行数,于是SELECT COUNT(*) FROM TABLE时只需要直接读取已经保存好的值而不需要进行全表扫描。

MyISAM引擎适用场景

1.不需要事务的操作;

2.插入、更新少,读取频繁;

3.频繁的统计计算。

相关文章

  • mysql的两种引擎

    MySQL两种存储引擎: MyISAM和InnoDB 简单总结 MyISAM是MySQL的默认数据库引擎(5.5版...

  • 2018-03-19

    mysql MyISAM引擎和InnoDB的介绍 1、MyISAM MyISAM是MySQL的默认存储引擎,基于...

  • mysql(七)

    MySQL存储引擎-innodb 查看存储引擎 innodb和myisam的物理区别 innodb 核心特性 MV...

  • MySQL学习日记(十一)-技术问答

    一、MySQL主要存储引擎MyISAM和InnoDB的区别? 1、 存储结构 MyISAM:每个MyISAM在磁盘...

  • MySQL的存储引擎

    MySQL的存储引擎 1.查看所有引擎 将结果列成表格 InnoDB和MyISAM对比 *(MylSAM的压缩表必...

  • MySQL面试题和答案

    Mysql 的存储引擎,myisam和innodb的区别。答: 1.MyISAM 是非事务的存储引擎,适合用于频繁...

  • 面试题2

    Mysql 的存储引擎,myisam和innodb的区别。答: 1.MyISAM 是非事务的存储引擎,适合用于频繁...

  • 【转】mysql 面试题

    Mysql 的存储引擎,myisam和innodb的区别。 答: 1.MyISAM 是非事务的存储引擎,适合用于频...

  • MySQL面试题和答案

    Mysql 的存储引擎,myisam和innodb的区别。答: 1.MyISAM 是非事务的存储引擎,适合用于频繁...

  • mysql存储引擎

    MySQL 存储引擎概述 MySQL 5.0 支持的存储引擎包括 MyISAM、 InnoDB、 BDB、 MEM...

网友评论

    本文标题:MySQL存储引擎InnoDB和MyISAM对比总结

    本文链接:https://www.haomeiwen.com/subject/jmaejxtx.html