MySQL中MyISAM存储引擎和InnoDB存储引擎的区别

标签: MYSQL InnoDB MyISAM 区别
3人阅读 评论(0) 收藏 举报
分类:

参考: MySQL存储引擎MyISAM与InnoDB区别总结整理

一、区别

  1. InnoDB支持事务;MyISAM不支持事务。
  2. InnoDB支持外键;MyISAM不支持外键。
  3. InnoDB锁的粒度是行锁;MyISAM锁的粒度是表锁。
  4. InnoDB把数据和索引存在一起;MyISAM把表分为三个文件:表结构(.frm)、表内容(MYD)、表索引(MYI)。
  5. InnoDB不保存表的具体行数,需要通过扫描表来获取有多少行;MyISAM保存表的具体行数。
  6. InnoDB删除表中数据时是一行一行的删除;MyISAM删除表时是先drop表,然后重建表。
  7. InnoDB可跨平台拷贝直接使用;MyISAM很难跨平台直接使用。
  8. InnoDB表格很难压缩;MyISAM表格可以被压缩。
  9. InnoDB中必须包含只有该字段的索引;MyISAM表中可以和其他字段一起建立联合索引。

注意: InnoDB表的行锁也不是绝对的,假如在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,例如:
update table set num=1 where name like 'a%'

二、选择

MyISAM: 适用于不使用事务,对表读多写少的场景。
InnoDB: 适用于可靠性要求比较高,或者要求事务,对表的写操作较多的场景。

查看评论

MySQL高级视频教程

MySQL是目前最流行的关系型数据库管理系统,在WEB应用方面 MySQL 也是目前最好的 RDBMS 应用软件之一。随着淘宝去IOE(去除IBM小型机、Oracle数据库及EMC存储设备)化的推进,MySQL 数据库在当前的互联网应用中变得越来越重要,
  • 2017年02月04日 17:28

MySQL存储引擎MyISAM与InnoDB区别总结整理

1、MySQL默认存储引擎的变迁在MySQL 5.1之前的版本中,默认的搜索引擎是MyISAM,从MySQL 5.5之后的版本中,默认的搜索引擎变更为InnoDB。2、MyISAM与InnoDB存储引...
  • u010870518
  • u010870518
  • 2017-04-03 20:28:19
  • 7783

MySQL架构设计——MyISAM存储引擎与InnoDB存储引擎

从MySQL5.1开始,MySQL引入了一个新的概念,插件式存储引擎体系结构。可以做到存储引擎层与SQL层各自更为独立,耦合更小,最重要的是方便了存储引擎的加载与移出,可以做到运行时加载新的存储引擎,...
  • zhangliangzi
  • zhangliangzi
  • 2016-05-12 14:32:37
  • 3466

MySQL中的存储引擎讲解(InnoDB,MyISAM,Memory等各存储引擎对比)

MySQL中的存储引擎: 1、存储引擎的概念 2、查看MySQL所支持的存储引擎 3、MySQL中几种常用存储引擎的特点 4、存储引擎之间的相互转化...
  • QH_JAVA
  • QH_JAVA
  • 2013-11-05 21:40:39
  • 23370

mysql数据库-MyISAM与InnoDB两个存储引擎的索引实现方式

1.MyISAM索引实现:主键索引:MyISAM数据存储文件和索引文件是分开的。MyISAM引擎使用B+Tree作为索引结构,叶节点的data域存放的是数据记录的地址。下图是MyISAM主键索引的原理...
  • chenchaofuck1
  • chenchaofuck1
  • 2016-05-12 16:42:27
  • 1231

MyISAM与Innodb引擎的特点和区别 (MySQL面试)

1、存储结构 MyISAM :每个MyISAM在磁盘上存储成三个文件。分别: .frm文件存储表定义   .MYD是数据文件的扩展名   .MYI是索引文件的扩展名。 InnoDB :所有的表都保...
  • KingGaiwusi
  • KingGaiwusi
  • 2017-05-10 16:14:09
  • 485

MySQL优化系列(五)--数据库存储引擎(主要分析对比InnoDB和MyISAM以及讲述Mrg_Myisam分表)

学校里做的项目都是默认MySQL的InnoDB存储引擎,没有思考过为什么使用,也没思考过其优缺和其他数据库存储引擎。直到我去实习了,在学习优化的过程中,才发现自己很无知,知识很局限。为此做次弥补。 文...
  • Jack__Frost
  • Jack__Frost
  • 2017-06-30 21:08:56
  • 2752

MySQL两种存储引擎MyISAM和InnoDB的比较

其实MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种 注意 MyISAM是MySQL的默认存储引擎 主要区别1. 事务 InnoDB 支持事务功能,MyISAM 不支...
  • u010187139
  • u010187139
  • 2015-07-07 21:25:42
  • 618

浅谈MySQL存储引擎选择 InnoDB还是MyISAM

MyISAM是MySQL中默认的存储引擎,一般来说不是有太多人关心这个东西。决定使用什么样的存储引擎是一个很tricky的事情,但是还是值我们去研究一下,这里的文章只考虑MyISAM和InnoDB这两...
  • myweishanli
  • myweishanli
  • 2014-08-26 00:21:51
  • 821
    个人资料
    持之以恒
    等级:
    访问量: 1万+
    积分: 579
    排名: 9万+
    访问量
    Flag Counter
    最新评论