mysql的innodb存储引擎和myisam存储引擎的区别
主要区别如下:
1、事务支持。innodb支持事务,事务(commit)、回滚(rollback)和崩溃修复能力(crash recovery capabilities)的事务安全(transaction-safe (ACID compliant))型表,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语言放在begin和commit之间,组成一个事务;而myisam强调的是性能,每次查询具有原子性,其执行数度比InnoDB类型更快,但是不提供事务支持。
2、表锁差异。myisam只支持表级锁,用户在操作myisam表时,select,update,delete,insert语句都会给表自动加锁;innodb支持事务和行级锁,是innodb的最大特色。行锁大幅度提高了多用户并发操作的新能。但是InnoDB的行锁,只是在WHERE的主键是有效的,非主键的WHERE都会锁全表的。
3、主键差异。MyISAM允许没有任何索引和主键的表存在,索引都是保存行的地址;而InnoDB如果没有设定主键或者非空唯一索引,就会自动生成一个6字节的主键(用户不可见),数据是主索引的一部分,附加索引保存的是主索引的值。
4、外键差异。MyISAM不支持外键,而innodb支持外键。
5、存储结构。每个MyISAM表在磁盘上存储成三个文件。第一个文件的名字以表的名字开始,扩展名指出文件类型。.frm文件存储表定义。数据文件的扩展名为.MYD (MYData)。索引文件的扩展名是.MYI (MYIndex)。而innodb是由.frm文件、表空间(分为独立表空间或者共享表空间,如果在配置文件中配置了innodb_file_per_table=true或者不配置就会使用独立表空间)和日志文件(redo log)组成。
6、全文索引。MyISAM支持 FULLTEXT类型的全文索引;InnoDB的不支持FULLTEXT类型的全文索引,但是innodb可以使用sphinx插件支持全文索引,并且效果更好,而且自从mysql5.6版本开始innodb就已经开始支持全文索引,mysql8.0则完全抛弃MyISAM存储引擎了,所以淡化MyISAM吧,已经逐渐成为历史产品,nnoDB引擎对FULLTEXT索引的支持是MySQL5.6新引入的特性,之前只有MyISAM引擎支持FULLTEXT索引。。
7、都是B+树索引,Innodb是索引组织表,myisam是堆表,索引组织表和堆表的区别要熟悉;
mysql的innodb存储引擎和myisam存储引擎的区别的更多相关文章
- InnoDB存储引擎与MyIsam存储引擎的区别
特性比较 mysql5.5之后默认的存储引擎为InnoDB,在此之前默认存储引擎是MyIsam 特点 MyIsam InnoDB 锁机制 表锁 行锁 事务 不支持 支持 外键 不支持 支持 B树索引 ...
- MySQL教程详解之存储引擎介绍及默认引擎设置
什么是存储引擎? 与其他数据库例如Oracle 和SQL Server等数据库中只有一种存储引擎不同的是,MySQL有一个被称为“Pluggable Storage Engine Architectu ...
- mysql的innodb数据库引擎详解
http://www.jb51.net/softjc/158474.html 这篇文章主要介绍了mysql的innodb数据库引擎,需要的朋友可以参考下 一.mysql体系结构和存储引擎 1. ...
- MySQL存储引擎之Myisam和Innodb总结性梳理
Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比 MyISAM InnoDB 构成上的区别: 每个MyISAM在磁盘上存储成三个文件.第一个 文件的名字以表的名字开始 ...
- MySQL存储引擎 InnoDB/ MyISAM/ MERGE/ BDB 的区别
MyISAM:默认的MySQL插件式存储引擎,它是在Web.数据仓储和其他应用环境下最常使用的存储引擎之一.注意,通过更改 STORAGE_ENGINE 配置变量,能够方便地更改MySQL服务器的默认 ...
- mysql存储引擎之MyISAM 和 InnoDB的比较
一.什么是存储引擎 存储引擎说白了就是如何存储数据.如何为存储的数据建立索引和如何更新.查询数据等技术的实现方法.因为在关系数据库中数据的存储是以表的形式存储的,所以存储引擎也可以称为表类型(即存储和 ...
- 涂抹mysql笔记-InnoDB/MyISAM及其它各种存储引擎
存储引擎:一种设计的存取和处理方式.为不同访问特点的表对象指定不同的存储引擎,可以获取更高的性能和处理数据的灵活性.通常是.so文件,可以用mysql命令加载它. 查看当前mysql数据库支持的存储引 ...
- MySQL存储引擎之Myisam和Innodb总结性梳理-转
原文链接:https://www.cnblogs.com/kevingrace/p/5685355.html 谢谢楼主 Mysql有两种存储引擎:InnoDB与Myisam,下表是两种引擎的简单对比 ...
- MySQL常见的两种存储引擎:MyISAM与InnoDB的爱恨情仇
Java面试通关手册(Java学习指南,欢迎Star,会一直完善下去,欢迎建议和指导):https://github.com/Snailclimb/Java_Guide 一 MyISAM 1.1 My ...
随机推荐
- ThinkPHP-5.0.23新的RCE漏洞测试和POC
TP5新RCE漏洞 昨天又是周五,讨厌周五曝漏洞,还得又得加班,算了,还是先验证一波.新的TP5RCE,据说发现者因为上次的RCE,于是又审计了代码,结果发现的.TP5也成了万人轮啊. 测试 环境搭建 ...
- apache反向代解决绝对路径可能出现的问题
Apache2在对应用做反向代理的时候,如果应用的页面中引用的连接或者是资源的地址是相对地址的话,是没有问题的,当应用中引用的地址是绝对地址(比如:)或者是request.getContextPath ...
- iOS计算两个时间的时间差
+ (long)calculteHourL:(NSDate *)endDate startDate:(NSDate *)startDate { NSCalendar *cal = [NSCalenda ...
- Unity3D笔记十四 力
Unity中力的方式有两种:第一种为普通力,需要设定力的方向与大小:第二种为目标位置力,需要设定目标点的位置,该物体将朝向这个目标位置施加力. 1.案例 添加两个球体和一个立方体,另外还要给两个球体添 ...
- Pyqt图标下载网站
下载地址: https://www.easyicon.net/ 1.程序中图标建议使用32x32的PNG格式. 2.pyinstaller打包中图标建议使用32x32的ICO格式.
- yii---判断POST请求
我们在进行数据的提交的时候,很多时候会判断请求状态来进行不同的选择.常见的就是判断POST以及GET的请求方式,下面是YII判断POST请求的代码示例: public function actionP ...
- binlog介绍
1.什么是binlog binlog是一个二进制格式的文件,用于记录用户对数据库更新的SQL语句信息,例如更改数据库表和更改内容的SQL语句都会记录到binlog里,但是对库表等内容的查询不会记录. ...
- poj3662 Telephone Lines【最短路】【二分】
http://poj.org/problem?id=3662 Telephone Lines Time Limit: 1000MS Memory Limit: 65536K Total Submi ...
- ubuntu下绝对路径和相对路径的问题
绝对路径与相对路径 除了需要特别注意的FHS目录配置外,在文件名部分我们也要特别注意.因为根据档名写法的不同,也可将所谓的路径(path)定义为绝对路径(absolute)与相对路径(relativ ...
- MapReduce规约
深入了解Combiners编程(相当于Map端的Reduce) 每一个map可能会产生大量的输出,combiner的作用就是在map端对输出先做一次合并,以减少传输到reducer的数据量. comb ...