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

原创 2015年07月07日 21:25:42

其实MySQL有多种存储引擎,MyISAM和InnoDB是其中常用的两种

注意

MyISAM是MySQL的默认存储引擎

主要区别

1. 事务

  • InnoDB 支持事务功能,MyISAM 不支持.
  • MyISAM 的执行速度更快且性能更好.

2. 数据操纵语言

  • MyISAM:适合执行大量的SELECT操作
  • InnoDB:适合执行大量的INSERT或UPDATE操作

3. 锁的机制

  • MyISAM锁的粒度是表级 即表级锁
  • InnoDB支持行级锁定 即行级锁

4. 物理结构

  • MyISAM表存放在三个文件中:frm 文件存放表格定义数据文件是MYD (MYData);索引文件是MYI (MYIndex)
  • InnoDB表由共享表空间、日志文件组(redo文件组)、表结构定义文件组成。若将innodb_file_per_table设置为on,则系统将为每一个表单独的生成一个table_name.ibd的文件,在此文件中,存储与该表相关的数据、索引、表的内部数据字典信息

5. 索引

  • MyISAM支持全文类型索引
  • InnoDB不支持全文索引

6. 查询表的行数

比如要执行 select count(*) from table

  • MyISAM: 表的行数存储在表中,没有使用where条件 可以直接读出保存好的行数,所以效率比较高
  • InnoDB: InnoDB 中不保存表的具体行数,需要扫描一遍整个表来计算有多少行,所以效率比较低.

总结

  • MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择

  • InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能

注:ACID指 数据库事务的四个基本要素的缩写 原子性(Atomicity)、一致性(Consistency)、隔离性(Isolation)、持久性(Durability)
版权声明:本文为博主原创文章,未经博主允许不得转载。

Mysql有两种存储引擎:InnoDB与Myisam

二者之间有六大区别:     MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件。第一个 文件的名字...
  • yuanyuanispeak
  • yuanyuanispeak
  • 2016年10月09日 12:01
  • 1554

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

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

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

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

MySQL存储引擎--MyISAM与InnoDB区别

MyISAM 和InnoDB 讲解   InnoDB和MyISAM是许多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级...
  • xifeijian
  • xifeijian
  • 2014年03月03日 22:29
  • 184542

MyISAM 和 InnoDB 的区别(经典面试题)

MyISAM 和 InnoDB 的区别:1,MyISAM不支持事务,它提供高速存储和检索,以及全文搜索的能力。MyISAM是默认的存储引擎2,MEMORY/HEAP存储引擎要比MyISAM快一个级别,...
  • tianpeiwen
  • tianpeiwen
  • 2012年11月06日 19:49
  • 580

MySQL存储结构MyISAM和InnoDB

MySQL两种表存储结构MyISAM和InnoDB的性能比较测试MyISAM 表。MyISAM 存储格式自版本 3.23 以来是 MySQL 中的缺省类型,它有下列特点:■ 如果操作系统自身允许更大的...
  • xzknet
  • xzknet
  • 2006年06月06日 23:07
  • 2583

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

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

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

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

【mysql引擎 面试题】innodb、myisam之间的不同

硬盘存储不同: MyIsam:一个表有三个文件:frm(存放表结构)、MYD(存放数据)、MYI(存放索引) InnoDB: 共享表空间:frm(存放表结构)、ibdat...
  • b98982016
  • b98982016
  • 2016年04月07日 10:54
  • 255

聚簇索引概念(Myisam与Innodb索引的区别)

myisam的主索引和次索引都指向物理行,下面来进行讲解 innodb的主键下存储该行的数据,此索引指向对主键的引用 myisam的索引存储图如下,可以看出,无论是id还是cat_id...
  • qq_25551295
  • qq_25551295
  • 2015年10月04日 22:47
  • 2712
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:MySQL两种存储引擎MyISAM和InnoDB的比较
举报原因:
原因补充:

(最多只允许输入30个字)