InnoDB与MyISAM引擎区别
mysql中InnoDB与MyISAM两种数据库引擎的区别:
一、InnoDB引擎:
1、支持事务性,
2、支持外部键,
3、行级锁,
4、不保存表的具体行数,执行select count(*) from table时,InnoDB要扫描一遍整个表来计算有多少行。
二、MyISAM引擎:
1、强调性能,执行速度比InnoDB快,
2、不支持事务性,
3、表级锁,
4、保存表的具体行数,
具体参照下表:
MyISAM | InnoDB | |
构成上区别 |
每个MyISAM在磁盘上存储成三个文件。文件名为表名,扩展名为文件类型。 .frm 文件存储表定义; |
基于磁盘的资源是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引擎区别相关推荐
- mysql存储引擎中INNODB和MyISAM的区别
切记:存储引擎是基于表的,而不是数据库. 存储引擎概念: MySQL中的数据用各种不同的技术存储在文件(或者内存)中.这些技术中的每一种技术都使用不同的存储机制.索引技巧.锁定水平并且最终提供广泛的不 ...
- MySQL存储引擎InnoDB和MyISAM的区别
文章目录 前言 一.MySQL 引擎 二.MyISAM和InnoDB特点 三.InnoDB和MyISAM的区别 总结 前言 面试经常会问到MySQL存储引擎的相关内容.常见的MySQL存储引擎有MyI ...
- mysql存储引擎InnoDB与MyISAM的区别
mysql存储引擎InnoDB与MyISAM的区别 众所周知,mysql之前的存储引擎是MyISAM,在5.6版本之后默认的存储引擎是InnoDB,那么两个存储引擎有什么区别? 一.MyISAM 存储 ...
- InnoDB和MyISAM的区别与选择
MyISAM 性能(适合小项目,读快速)MyISAM 是MySQL中默认的存储引擎,比如适合新闻系统,读为主. InnoDB 事务或外键支持(适合大项目,高并发读写)活跃用户20多万时候,也能很轻松应 ...
- mysql索引为什么使用B+tree,InnoDB与MyISAM 的区别
文章目录 1. 索引的作用? 2. 索引有哪些数据结构 ①:Hash ①:二叉树 ②:红黑树 ③:B-Tree ④:B+Tree 3. B+Tree与B-Tree的区别 4. InnoDB 和 MyI ...
- 数据表的类型(INNODB与MYISAM 的区别)
数据表的类型(INNODB与MYISAM 的区别) SHOW CREATE DATABASE school; -- 查看创建数据库的语句 SHOW CREATE TABLE student; -- 查 ...
- MySql InnoDB与MyISAM的区别
一.InnoDB与MyISAM的区别? 存储引擎是对底层物理数据执行实际操作的组件,为Server服务层提供各种操作数据的API.常用的存储引擎有InnoDB.MyISAM.Memory.这里我们主要 ...
- innodb和myisam的区别
innodb和myisam的区别: (1)事务处理: MyISAM是非事务安全型的,而InnoDB是事务安全型的(支持事务处理等高级处理): (2)锁机制不同: MyISAM是表级锁,而InnoDB是 ...
- 「MySQL 数据库 存储引擎」InnoDB和MyIsAm的区别
我们应该深刻意识到Mysql数据库的核心为存储引擎 MySql数据库的插件型体系结构,可以使用不同的存储引擎-- 而每个存储引擎都有各自的特点,开发人员可以根据不同的业务和应用建立不同的存储引擎表. ...
最新文章
- 为SharePoint顶部链接开发自定义数据源
- 【问答集锦】联邦学习让隐私保护和海量数据学习兼得!
- 【Tensorflow】【损失函数】交叉熵数据验证(下)---BinaryCrossentropy二分类
- C#连接Oracle数据库
- 推荐一款UI非常Good的 Redis 客户端工具
- 电脑编辑安卓分区_20分钟轻松解决安卓手机分区问题 干货篇
- cad完全卸载教程_卸载后 如何彻底删除CAD2010?
- 解决:本地计算机无法复制文件到远程计算机
- 2010十大杰出IT博客大赛50强之李晨光
- 二级LOGO设计代表什么
- 资管新规下机构众生相:缩表、转型及强者生存
- Web 3D渲染引擎HOOPS Communicator动画编辑器的使用 | HOOPS教程
- 棋牌游戏进入游戏房间流程
- Java程序员不得不了解的5款IDE神器
- 最新CAD机械二维三维图块集
- python图像预处理-(二)腐蚀与膨胀
- 递归求阶乘之和(动态规划)
- VS2005 常见问题分析
- c++程序设计基础(第五版)(上) 习题与解答
- 银联在线支付对接流程以及签名算法
热门文章
- Linux命令中的rpm安装命令
- 为什么 Python被Google选为TensorFlow的开发语言呢?使用 Python比C++语言进行机器学习有什么优势?
- 利用Matlab设计滤波器(FDAT)
- file.getinputstream(); 要关闭吗_iOS 13.5.1 和 12.4.7 已关闭,目前不能升级或降级
- linux c语言定时任务crontab,linux 定时任务 crontab相关(一)
- php微信小程序物流进度推送,微信小程序 消息推送php服务器验证实例详解
- python舵机控制程序_树莓派PWM控制舵机的两种方式
- 为什么使用Spring的@autowired注解后就不用写setter了
- 002_Spring Data JPA CRUD
- 010_多表的表关系