mysql中InnoDB与MyISAM两种数据库引擎的区别:

一、InnoDB引擎:

1、支持事务性,

2、支持外部键,

3、行级锁,

4、不保存表的具体行数,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行。

二、MyISAM引擎:

1、强调性能,执行速度比InnoDB快,

2、不支持事务性,

3、表级锁,

4、保存表的具体行数,

具体参照下表:

  MyISAM InnoDB
构成上区别

每个MyISAM在磁盘上存储成三个文件。文件名为表名,扩展名为文件类型。

.frm 文件存储表定义;
.MYD(MYData) 数据文件的扩展名;
.MYI(MYIndex) 索引文件的扩展名。

基于磁盘的资源是InnoDB表空间数据文件和它的日志文件,InnoDB 表的大小只受限于操作系统文件的大小,一般为 2GB
事务处理方面 MyISAM类型的表强调的是性能,其执行速度比InnoDB类型更快,但是不提供事务支持。

InnoDB提供事务支持事务,外部键等高级数据库功能。

表级锁

行级锁

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

select、insert、update、delete操作 如果执行大量的 SELECT,MyISAM 是更好的选择。

1.如果你的数据执行大量的INSERT或UPDATE,出于性能方面的考虑,应该使用InnoDB表。

2.DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除。

3.LOAD TABLE FROM MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。

对于AUTO_INCREMENT类型的字段 必须包含只有该字段的索引 可以和其他字段一起建立联合索引
    InnoDB不支持FULLTEXT类型的索引。
  MyISAM类型的二进制数据文件可以在不同操作系统中迁移

综上:

MyISAM适合场景: 多查询计算、无事务

InnoDB适合场景: 要求可靠性(事务性)、频繁写入

三、从文件结构比较两种数据库引擎:

1、采用MyISAM引擎的表文件类型如下:

如mysql库下的user表包含一下文件:

user.frm   存储表结构

user.MYD  存储表数据

user.MYI  存储表索引

2、采用InnoDB引擎的表文件类型如下:

如test222库下的test表:

db.opt    存储字符集和排序规则(所有表公用)

test.frm  存储表结构

ibdata    存储所有表的数据(公用)

转载于:https://www.cnblogs.com/ahaii/p/6213797.html

InnoDB与MyISAM引擎区别相关推荐

  1. mysql存储引擎中INNODB和MyISAM的区别

    切记:存储引擎是基于表的,而不是数据库. 存储引擎概念: MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不 ...

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

    文章目录 前言 一.MySQL 引擎 二.MyISAM和InnoDB特点 三.InnoDB和MyISAM的区别 总结 前言 面试经常会问到MySQL存储引擎的相关内容.常见的MySQL存储引擎有MyI ...

  3. mysql存储引擎InnoDB与MyISAM的区别

    mysql存储引擎InnoDB与MyISAM的区别 众所周知,mysql之前的存储引擎是MyISAM,在5.6版本之后默认的存储引擎是InnoDB,那么两个存储引擎有什么区别? 一.MyISAM 存储 ...

  4. InnoDB和MyISAM的区别与选择

    MyISAM 性能(适合小项目,读快速)MyISAM 是MySQL中默认的存储引擎,比如适合新闻系统,读为主. InnoDB 事务或外键支持(适合大项目,高并发读写)活跃用户20多万时候,也能很轻松应 ...

  5. mysql索引为什么使用B+tree,InnoDB与MyISAM 的区别

    文章目录 1. 索引的作用? 2. 索引有哪些数据结构 ①:Hash ①:二叉树 ②:红黑树 ③:B-Tree ④:B+Tree 3. B+Tree与B-Tree的区别 4. InnoDB 和 MyI ...

  6. 数据表的类型(INNODB与MYISAM 的区别)

    数据表的类型(INNODB与MYISAM 的区别) SHOW CREATE DATABASE school; -- 查看创建数据库的语句 SHOW CREATE TABLE student; -- 查 ...

  7. MySql InnoDB与MyISAM的区别

    一.InnoDB与MyISAM的区别? 存储引擎是对底层物理数据执行实际操作的组件,为Server服务层提供各种操作数据的API.常用的存储引擎有InnoDB.MyISAM.Memory.这里我们主要 ...

  8. innodb和myisam的区别

    innodb和myisam的区别: (1)事务处理: MyISAM是非事务安全型的,而InnoDB是事务安全型的(支持事务处理等高级处理): (2)锁机制不同: MyISAM是表级锁,而InnoDB是 ...

  9. 「MySQL 数据库 存储引擎」InnoDB和MyIsAm的区别

    我们应该深刻意识到Mysql数据库的核心为存储引擎 MySql数据库的插件型体系结构,可以使用不同的存储引擎-- 而每个存储引擎都有各自的特点,开发人员可以根据不同的业务和应用建立不同的存储引擎表. ...

最新文章

  1. 为SharePoint顶部链接开发自定义数据源
  2. 【问答集锦】联邦学习让隐私保护和海量数据学习兼得!
  3. 【Tensorflow】【损失函数】交叉熵数据验证(下)---BinaryCrossentropy二分类
  4. C#连接Oracle数据库
  5. 推荐一款UI非常Good的 Redis 客户端工具
  6. 电脑编辑安卓分区_20分钟轻松解决安卓手机分区问题 干货篇
  7. cad完全卸载教程_卸载后 如何彻底删除CAD2010?
  8. 解决:本地计算机无法复制文件到远程计算机
  9. 2010十大杰出IT博客大赛50强之李晨光
  10. 二级LOGO设计代表什么
  11. 资管新规下机构众生相:缩表、转型及强者生存
  12. Web 3D渲染引擎HOOPS Communicator动画编辑器的使用 | HOOPS教程
  13. 棋牌游戏进入游戏房间流程
  14. Java程序员不得不了解的5款IDE神器
  15. 最新CAD机械二维三维图块集
  16. python图像预处理-(二)腐蚀与膨胀
  17. 递归求阶乘之和(动态规划)
  18. VS2005 常见问题分析
  19. c++程序设计基础(第五版)(上) 习题与解答
  20. 银联在线支付对接流程以及签名算法

热门文章

  1. Linux命令中的rpm安装命令
  2. 为什么 Python被Google选为TensorFlow的开发语言呢?使用 Python比C++语言进行机器学习有什么优势?
  3. 利用Matlab设计滤波器(FDAT)
  4. file.getinputstream(); 要关闭吗_iOS 13.5.1 和 12.4.7 已关闭,目前不能升级或降级
  5. linux c语言定时任务crontab,linux 定时任务 crontab相关(一)
  6. php微信小程序物流进度推送,微信小程序 消息推送php服务器验证实例详解
  7. python舵机控制程序_树莓派PWM控制舵机的两种方式
  8. 为什么使用Spring的@autowired注解后就不用写setter了
  9. 002_Spring Data JPA CRUD
  10. 010_多表的表关系