转载至:https://my.oschina.net/suyain/blog/1925807

Innodb引擎:

  1.Innodb引擎提供了对数据库ACID事务的支持,并且实现了SQL标准的四种隔离级别。

  2.该引擎还提供了行级锁和外键约束。

  3.使用行级锁也不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDBb表同样会锁全表。

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

  5.MySQL运行时Innodb会在内存中建立缓冲池,用于缓冲数据和索引。

  6.该引擎不支持FULLTEXT类型的索引(不支持全文索引)。

  7.它没有保存表的行数,当SELECT COUNT(*)FROM TABLE时需要扫描全表。

  8.当需要使用数据库事务时,该引擎当然是首选。

  9.由于锁的粒度更小,写操作不会锁定全表,所以在并发较高时,使用Innodb引擎会提升效率。

MyIASM引擎

  1. MyIASM是MySQL默认的引擎。

  2.但是它没有提供对数据库事务的支持,也不支持行级锁和外键。

  3.因此当INSERT(插入)或UPDATE(更新)数据时即写操作需要锁定整个表,效率便会低一些。

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

  5.如果表的读操作远远多于写操作且不需要数据库事务的支持,那么MyIASMy也是很好的选择。

主要区别:

  1.MyIASM是非事务安全的,而InnoDB是事务安全的。

  2.MyIASM锁的粒度是表级的,而InnoDB支持行级锁。

  3.MyIASM支持全文类型索引,而InnoDB不支持全文索引。

  4.MyIASM相对简单,效率上要优于InnoDB,小型应用可以考虑使用MyIASM.

  5.MyIASM表保存成文件形式,跨平台使用更加方便。

应用场景:

  1.MyIASM管理非事务表,提供高速存储和检索以及全文搜索能力,如果在应用中执行大量select操作,应该选择MyIASM。

  2.InnoDB用于事务处理,具有ACID事务支持等特性,如果在应用中执行大量insert和update操作,应该选择InnoDB。

转载:mysql引擎innodb和MyIsam的区别的更多相关文章

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

    MySQL5.5后,默认存储引擎是InnoDB,5.5之前默认是MyISAM. InnoDB(事务性数据库引擎)和MyISAM的区别补充: InnoDB是聚集索引,数据结构是B+树,叶子节点存K-V, ...

  2. MySQL之innodb和myisam的区别

    innodb和myisam的区别: MyISAM在磁盘上存储成三个文件.第一个文件的名字以表的名字开始,扩展名指出文件类型, .frm文件存储表定义, 数据文件的扩展名为.MYD, 索引文件的扩展名是 ...

  3. MySql的多存储引擎架构, 默认的引擎InnoDB与 MYISAM的区别(滴滴)

    1.存储引擎是什么? MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不同的功能和能力.通过选择不同的技术, ...

  4. MySQL存储引擎 InnoDB与MyISAM的区别

    来源:http://www.jb51.net/article/47597.htm 基本的差别:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持.MyISAM类型的表强调的是性能,其执行 ...

  5. mysql 存储引擎 InnoDB 与 MyISAM 的区别和选择

    http://www.blogjava.net/jiangshachina/archive/2009/05/31/279288.html     酷壳 - MySQL: InnoDB 还是 MyISA ...

  6. mysql数据库引擎InnoDB和MyISAM的区别

    InnoDB支持行级锁和表级锁(默认行级锁),支持事务,外部键等:大量的insert和update更快等.只有通过索引条件检索数据,InnoDB 才使用行级锁,否则,InnoDB 将使用表锁. MyI ...

  7. 数据库引擎InnoDB和myisam的区别和联系

    1.ENGINE=InnoDB 数据库存储引擎,DEFAULT 默认,CHARSET=utf8 数据库字符编码 2.数据库的存储引擎, mysql中engine=innodb和engine=myisa ...

  8. mysql中InnoDB与MyISAM的区别

    两者的区别: 1. InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成 ...

  9. mysql中innodb和myisam的区别

    InnoDB和MyISAM是很多人在使用MySQL时最常用的两个表类型,这两个表类型各有优劣,5.7之后就不一样了 1.事务和外键 InnoDB具有事务,支持4个事务隔离级别,回滚,崩溃修复能力和多版 ...

随机推荐

  1. [数分笔记]Dedekind切割定理的证明

    1.定理内容 Dedekind切割定理:设是实数集的一个切割,则或者有最大数,或者有最小数. 2.证明过程 设是中所有有理数所构成的集合,是中所有有理数所构成的集合 从而构成一个有理数集的切割 有三种 ...

  2. Java高级部分概要笔记

    复习 多线程 程序.进程.线程的概念.区别 并行.并发 创建线程的四种方式:继承Thread.实现Runnable接口.实现Callable接口.线程池 线程的生命周期 线程的同步方式,三种:同步方法 ...

  3. 使用http-server 快速的开启一个静态服务器

    在本地安装好了nodejs后我们可以使用一个命令快速开启一个服务器: 命令界面进入到根目录(存放静态网页的文件夹) //方式一 npx http-server //默认 8080端口 //方式二 np ...

  4. 释放linux内存中的cache缓存

    echo 3 > /proc/sys/vm/drop_caches 记一次 经常用  exp 导出oracle全量数据库,发现linux内存一直在减小没有释放,即使 oracle重启也不行,只有 ...

  5. 哈工大 NLP 实验一 汉语分词系统

    NLP实验代码可见github:NLP实验代码整理 本实验会查重,而且写起来难度比较大,建议早一些开始.实验报告要用顶会论文形式呈现,建议使用overleaf里的ACL论文latex模板比较方便一点.

  6. Qt:QString

    0.说明 区别于QByteArray,QString串是Unicode串,每个元素都是QChar 16-bit UTF-16编码(Unicode) :而QByteArray是8-bit串. 0.1.初 ...

  7. 前端好用API之getBoundingClientRect

    前情 在前端开发需求中,经常需要获取元素的尺寸位置相关的属性,以往的做法是调用不同api获取相关属性的. getBoundingClientRect介绍 getBoundingClientRect() ...

  8. [2022-2-26] OICLASS-USACO提高组模拟赛 C·Convoluted Intervals S

    这道题非常简单啊,我看很多人都做出来了,张林昨天也讲的很明白了,那我来简单写一下: 暴力思路(10pts) 我们发现,我们只需要模拟画出一个图然后进行暴力枚举就行了. 差分+桶+加乘原理思路(100p ...

  9. How to use Remote-SSH in Windows

    对于不太会使用 Vim 的我来说,在服务器上用 Vim 去修改 nginx.conf 实在有点麻烦,比如没有高亮和格式化.正好想起前不久微软发布了远程开发工具包,其中一个就是今天要介绍的 Remote ...

  10. thinkphp6的一些用法

    Thinkphp6笔记一:安装http://www.thinkphp.cn/topic/68371.htmlThinkphp6笔记二:开启多应用模式http://www.thinkphp.cn/top ...