InnoDB优点:

  1. InnoDB 支持事务,MyISAM 不支持事务。
  2. InnoDB 支持外键,而 MyISAM 不支持。
  3. InnoDB 是聚集索引,聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB 必须要有主键,通过主键索引效率很高,加快了查询速度和效率。
  4. InnoDB 使用行锁,查询更新效率高。
  5. 系统奔溃后,MyISAM恢复起来更困难,InnoDB更快。

InnoDB缺点:

  1. InnoDB 是聚集索引,但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。
    占据数据库存储空间,如果索引列发生数据变化,索引也必须更新。
  2. InnoDB 不保存表的具体行数,需要全表扫描,速度慢。
  3. InnoDB 使用行锁,批量插入速度慢。
  4. 需要更多的内存和存储,它会在主内存中建立其专用的缓冲池用于高速缓冲数据和索引。

MyISAM优点:

  1. MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。
  2. MyISAM 用一个变量保存了整个表的行数,执行语句时只需要读出该变量即可,速度很快。
  3. MyISAM 使用表锁,批量插入速度快。
  4. 占用储存空间小:MyISAM支持支持三种不同的存储格式:静态表、动态表、压缩表。当表在创建之后并导入数据之后,不会再进行修改操作,可以使用压缩表,极大的减少磁盘的空间占用。

MyISAM缺点:

  1. MyISAM 使用表锁,一个更新语句会锁住整张表,导致其他查询和更新都会被阻塞,因此并发访问受限。
  2. 系统奔溃后,MyISAM恢复起来更困难,InnoDB更快。

总结:

  1. 支持事务,请选择 InnoDB,如果不需要可以考虑 MyISAM。
  2. 如果表中绝大多数都只是读查询,可以考虑 MyISAM,如果读写频繁,请使用InnoDB。
  3. 能否接受系统奔溃后,MyISAM恢复起来更困难,不能接受就选 InnoDB。
    4.如果执行大量的SELECT,MyISAM是更好的选择。
    如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。

InnoDB与MyISAM的优缺点相关推荐

  1. InnoDB和Myisam引擎的优缺点

    相比较InnoDB和Myisam两种引擎: 1.批量插入的速度来说Mysiam比InnoDB高,Mysiam多用来处理批量数据. 2.InnoDB支持事务保障事务安全,而Myisam没有,这是选择In ...

  2. MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)

    MySQL是我们经常使用的数据库处理系统(DBMS),不知小伙伴们有没有注意过其中的"存储引擎"(storage_engine)呢?有时候面试题中也会问道MySQL几种常用的存储引 ...

  3. mysql 内存引擎_MySQL常见的三种存储引擎(InnoDB、MyISAM、MEMORY)

    MySQL是我们经常使用的数据库处理系统(DBMS),不知小伙伴们有没有注意过其中的"存储引擎"(storage_engine)呢?有时候面试题中也会问道MySQL几种常用的存储引 ...

  4. MySQL 数据库 InnoDB 和 MyISAM 数据引擎的差别

    InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是 ...

  5. mysql 事务 myisam,InnoDB和MyISAM的差别(mysql事务处理)

    InnoDB 和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定.基本的差别为:MyISAM类型不支持事务处理等高级处理,而 InnoDB类型支持.MyISAM类型的表强调 ...

  6. 数据库关机_数据库:MySQL常见的三种存储引擎InnoDB、MyISAM、MEMORY的区别?

    InnoDB.MyISAM两种存储引擎的大致区别? 1.InnoDB支持事务,MyISAM不支持, 这一点是非常之重要.事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyI ...

  7. mysql innodb和myisam_Mysql InnoDB和MyISAM的区别

    展开全部 InnoDB和MyISAM是在使用e69da5e887aa62616964757a686964616f31333335346134MySQL最常用的两个表类型,各有优缺点,视具体应用而定.基 ...

  8. MySQL 的三大引擎:InnoDB、MyISAM和Memory

    http://www.cnblogs.com/kakaliush/archive/2010/02/23/1671757.html MySQL的三大引擎:InnoDB.MyISAM和Memory Inn ...

  9. InnoDB和MyISAM存储引擎

    本篇文章主要介绍InnoDB和MyISAM存储引擎,以及他们各自应用的场景与优缺点. InnoDB 引擎:具备外键支持功能的事务存储引擎 MySQL从3.23.34a开始就包含InnoDB存储引擎. ...

最新文章

  1. 热门 | Google Brain前员工深度盘点2017人工智能和深度学习各大动态
  2. LRU(Least Recently Used)算法的理解
  3. 杜鹃演绎奢华春装大片
  4. python高级功能_python高级篇
  5. java的svn插件maver_项目版本管理工具---MAVENSVN
  6. 巧用DOS命令打印上线文件列表
  7. 调用阿里API创建阿里云主机
  8. 我的R 之路: R最常见的小基础。。。。。。。。
  9. java 排队_JAVA实现排队论
  10. 常见的编程语言的特点与应用领域浅谈
  11. MDK(keil5)的下载及安装教程
  12. JavaWeb过滤器分类
  13. 笔记-使用AntDesignVue的Modal组件
  14. HFSS初探日志(二)微波滤波器设计实例:微带发夹线滤波器
  15. 仿XP画图板—升级版
  16. AD域渗透 | PTHPTK哈希传递攻击手法
  17. Vue3+TypeScript
  18. Multi-Tenancy模式,基础服务大规模扩张的时候,是应该推进了。
  19. 用openlayers3绘图(点、线、圆、正方形....)
  20. java遍历excel 表格

热门文章

  1. matlab中alw,MATLAB环境下遗传算法优化工具箱的应用_刘万林
  2. 功能需要富文本编译器图片不转base64,琢磨了一下,上代码
  3. [MS Project]Project软件入门两天之旅
  4. http状态返回代码 1xx(临时响应)
  5. ADODB.Recordset 错误 '800a0bb9' 参数类型不正确,或不在可以接受的范围之内,或与其他参数冲突。
  6. Python 图片与pdf相互转换
  7. Oracle DataGuard介绍
  8. python基础——数据结构之元组
  9. mysql strip_strip 命令的用法
  10. 自然语言处理(二十八):BERT介绍