InnoDB:

定义:

InnoDB是一个事务型的存储引擎,有行级锁定和外键约束。Innodb引擎提供了对数据库

ACID事务的支持,并且实现了SQL标准的四种隔离级别,该引擎还提供了行级锁和外键约束,

它的设计目标是处理大容量数据库系统,它本身其实就是基于MySQL后台的完整数据库系统,

MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。但是该引擎不支持FULLTEXT

类型的索引,而且它没有保存表的行数,当SELECT COUNT(*) FROM TABLE时需要扫描全表。

当需要使用数据库事务时,该引擎当然是首选。由于锁的粒度更小,写操作不会锁定全表,所以在

并发较高时,使用Innodb引擎会提升效率。但是使用行级锁也不是绝对的,如果在执行一个SQL

语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表。

优点:

1、支持事务处理、ACID事务特性;
2、实现了SQL标准的四种隔离级别;
3、支持行级锁和外键约束;
4、可以利用事务日志进行数据恢复。
5、锁级别为行锁,行锁优点是适用于高并发的频繁表修改,高并发是性能优于 MyISAM。缺点是系统消耗较大。
6、索引不仅缓存自身,也缓存数据,相比 MyISAM 需要更大的内存。

缺点:

因为它没有保存表的行数,当使用COUNT统计时会扫描全表。

适用场景:

1)经常更新的表,适合处理多重并发的更新请求。

2)支持事务。

3)可以从灾难中恢复(通过bin-log日志等)。

4)外键约束。只有他支持外键。

5)支持自动增加列属性auto_increment。

MyIsam:

定义:

MyISAM 是 MySQL 5.5.5 之前的默认引擎,它的设计目标是快速读取。但是它没有提供对数据库事务的支持,也不支持行级锁和外键,因此当INSERT(插入)或UPDATE(更新)数据时即写操作需要锁定整个表,效率便会低一些。

优点:

1.高性能读取;

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

缺点:

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

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

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

4、不能在表损坏后恢复数据。(是不能主动恢复)

以下两点必须使用 InnoDB:

(1)可靠性要求比较高,或者要求事务;

(2)表更新和查询都相当的频繁,并且表锁定的机会比较大的情况。

对比之下,MyISAM的使用场景:

1)做很多count的计算的。如一些日志,调查的业务表。

2)插入修改不频繁,查询非常频繁的。

3)没有事务。

MySQL引擎:MyIsam和Innodb的区别相关推荐

  1. 【myISAM和innoDB】mySql的引擎myisam和innodb的区别/mysiam(mysql插入速度优化)

    目录 Myisam 和Innodb 特点和擅长 Myisam 和Innodb 数据存储区别 Myisam引擎(非聚集索引--叶子节点存储数据地址的指针) Innodb引擎(聚集索引---叶子节点的da ...

  2. MySQL存储引擎MyISAM和InnoDB的区别

    需要完整版PDF面试文档可扫描左侧二维码拿! 你都工作3年了,怎么还不知道MyISAM和InnoDB有什么区别?一位粉丝被面试官这样一个问题.当时,这位粉丝直接回复"不知道",这位 ...

  3. mysql and常用引擎_MySQL两大常用存储引擎MyISAM,InnoDB的区别

    本文主要整理了MySQL两大常用的存储引擎MyISAM,InnoDB的六大常见区别,来源于Mysql手册以及互联网的资料 InnoDB与Myisam的六大区别 MyISAM InnoDB 构 成上的区 ...

  4. MySQL中MyISAM 与innoDB的区别(转)

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

  5. Mysql存储引擎详解(MyISAM与InnoDB的区别)

    Mysql存储引擎详解(MyISAM与InnoDB的区别) 存储引擎     MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平 ...

  6. mysql 两种存储引擎 MyISAM 和InnoDB

    mysql 两种存储引擎 MyISAM 和InnoDB MyISAM 是MySQL中默认的存储引擎,一般来说不是有太多人关心这个东西.决定使用什么样的存储引擎是一个很tricky的事情,但是还是值我们 ...

  7. MySQL的MyISAM和InnoDB存储引擎表结构

    MySQL的MyISAM和InnoDB存储引擎表结构: MyISAM存储引擎: MyISAM表:每一个表都有3个文件,都位于数据库目录中. tb_name.frm 表结构定义 tb_name.MYD ...

  8. 【MySQl】MyISAM和InnoDB索引对比

    [MySQl]MyISAM和InnoDB索引对比 部分内容转自:http://www.2cto.com/database/201211/172380.html 比较好的文章:http://www.cn ...

  9. MyISAM 和 InnoDB 的区别

    MyISAM 和 InnoDB 的区别 MySQL 5.5 之前,MyISAM 引擎是 MySQL 的默认存储引擎,可谓是风光一时.虽然,MyISAM 的性能还行,各种特性也还不错(比如全文索引.压缩 ...

  10. MyISAM和InnoDB的区别

    MyISAM和InnoDB的区别 mysql5.5版本后将InnoDB作为默认的存储引擎,之前都是用MyISAM,两种的区别在于以下五点: 1.数据的存储结构不同 MyISAM有三个文件: .frm: ...

最新文章

  1. python3.7源码分析-字典
  2. C#和Java的对比
  3. 【c++】0.C++笔记
  4. 19、Java并发性和多线程-嵌套管程锁死
  5. 垂直拆分后,遇到瓶颈,数据水平拆分
  6. 三圆相交阴影部分面积_小学六年级图形面积的题很多家长都不会,一些初中生也未必会做...
  7. PHP 实现图片验证码
  8. a标签点击跳转失效--IE6、7的奇葩bug
  9. 蒙特卡洛法求圆周率100亿数据
  10. 一个系统中同时使用VC6.0+OpenCV1.0和VS2010+OpenCV2.4.6.0的方法
  11. php多人点餐可以看到对方点的菜,千万不要小看你身边那个会点菜的人,因为
  12. 定位20万个星系只需10秒!这款AI神器带你撩开宇宙面纱
  13. SOA技术相关介绍(RPC, Web Service, REST,SOAP,JMI)
  14. Restoring Road Network 反证最短路
  15. 转:为 setuptools 开路搭桥
  16. 承上启下的总结+从吴军的书《态度》总结出的20条为人方法生活状态
  17. 阿里云python中文社区_python 写中文
  18. 机器视觉在服务机器人中的应用
  19. 什么是云虚拟主机_云虚拟主机有什么用
  20. Java实现23种设计模式教程(作者原创)

热门文章

  1. 怎样新建Oracle数据库
  2. js indexof用法indexOf()定义和用法
  3. oc 中随机数的用法(arc4random() 、random()、CCRANDOM_0_1()
  4. iOS 模型数组去重复
  5. Linux命令(27):shell 结合expect,多服务器批量分发数据
  6. Laravel自定义分页样式
  7. 趁有空,再了解一下GROOVY中关于类的通例
  8. ARM1176JZF-S/S3C6410 内存地址转换
  9. petshop4.0数据库分析一:数据库概览
  10. SDN和OpenFlow的区别—Vecloud微云