文档章节

MySQL存储引擎MyISAM与InnoDB的区别

mn_1127
 mn_1127
发布于 2015/08/28 10:16
字数 570
阅读 82
收藏 1

一、InnoDB支持事务,MyISAM不支持,这一点是非常之重要。事务是一种高级的处理方式,如在一些列增删改中只要哪个出错还可以回滚还原,而MyISAM就不可以了。

二、MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及设计到安全性就高的应用

三、InnoDB支持外键,MyISAM不支持

四、MyISAM是默认引擎,InnoDB需要指定

五、InnoDB不支持FULLTEXT类型的索引

六、InnoDB中不保存表的行数,如select count(*) from table时,InnoDB需要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含where条件时MyISAM也需要扫描整个表

七、对于自增长的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中可以和其他字段一起建立联合索引

八、清空整个表时,InnoDB是一行一行的删除,效率非常慢。MyISAM则会重建表

九、InnoDB支持行锁(某些情况下还是锁整表,如 update table set a=1 where user like '%lee%')

十、MyISAM还使用一种表格锁定的机制,来优化多个并发的读写操作,其代价是你需要经常运行OPTIMIZE TABLE命令,来恢复被更新机制所浪费的空间

一般来说:MyISAM适合:(1)做很多count 的计算;(2)插入不频繁,查询非常频繁;(3)没有事务。

                 InnoDB适合:(1)可靠性要求比较高,或者要求事务;(2)表更新和查询都相当的频繁,并且表锁定的机会比较大的情况。

通过以上十点区别,结合自己项目的特点,就基本可以确定所需要的引擎了!

© 著作权归作者所有

mn_1127
粉丝 6
博文 23
码字总数 6952
作品 0
杭州
后端工程师
私信 提问
MySQL存储引擎InnoDB与Myisam的六大区别

MySQL有多种存储引擎,每种存储引擎有各自的优缺点,可以择优选择使用: MyISAM、InnoDB、MERGE、MEMORY(HEAP)、BDB(BerkeleyDB)、EXAMPLE、FEDERATED、ARCHIVE、CSV、BLACKHOLE。 MySQL支持...

Junn
2013/12/11
0
2
MySQL: MyISAM和InnoDB的区别

InnoDB和MyISAM是在使用MySQL最常用的两个表类型,各有优缺点,视具体应用而定。基本的差别为:MyISAM类型不支持事务处理等高级处理,而InnoDB类型支持。MyISAM类型的表强调的是性能,其执行...

crazyinsomnia
2010/03/07
11.6K
2
MyISAM和InnoDB区别详解

MyISAM是MySQL的默认数据库引擎(5.5版之前),由早期的ISAM(Indexed Sequential Access Method:有索引的顺序访问方法)所改良。虽然性能极佳,但却有一个缺点:不支持事务处理(transacti...

xiaocao13140
2018/04/20
0
0
mysql myisam innodb 区别

最近连续接到了两次tencent的电话面试,当然不是同一个部门。都涉及到了一个mysql的基础知识问题。为了防止第三次打电话来,备注下。^^。 题目1:讲讲你对mysql myisam,innodb的认识。然后你...

马丁博客
2010/10/08
0
0
MySQL数据库MyISAM和InnoDB存储引擎的比较

MyISAM是MySQL的默认存储引擎,基于传统的ISAM类型,支持全文搜索,但不是事务安全的,而且不支持外键。每张MyISAM表存放在三个文件中:frm 文件存放表格定义;数据文件是MYD (MYData);索引...

xinson
2014/11/03
0
1

没有更多内容

加载失败,请刷新页面

加载更多

solidity智能合约如何判断地址为0或空

智能合约地址判断 在旧版本中可使用以下代码来进行比较: owner != 0x0 但如果在新版本中使用,则会提示错误信息。 那么,如何正确使用来比较地址是否为空呢。 解决方案 可以使用address(0...

程序新视界
28分钟前
3
0
RDS 5.7三节点企业版时代的数据一致性解决方案

  上篇我们看到了在MySQL主备模式下,我们在数据一致性上做了不少事情,但解决方案都有一定的局限性,适合部分场景或者解决不彻底的问题。随着以Google Spanner以及Amazon Aruora 为代表的...

阿里云官方博客
29分钟前
3
0
【百度飞浆AI Studio】1、百度飞浆AI Studio的初次使用

百度在AI人工智能方面的发力巨大,开源了优秀的PaddlePaddle平台,为开发者提供支持。 环境方面和硬件配备方面如果对于新手来说还是比较麻烦,及时使用Docker也还是对使用者有一定的门槛要求...

-个俗人
33分钟前
2
0
SaaS

什么是SaaS? SaaS(Software as a Service),即多租户(或多承租)软件应用平台. SaaS是这样一种架构模式:它让多个不同环境的用户使用同一套应用程序,且保证用户之间的数据相互隔离。 多租...

禅明
36分钟前
1
0
Nginx常用命令

#Nginx常用命令 nginx -V(大写)查看已安装的nginx安装了什么模块及其详细版本信息nginx -v查看nginx版本nginx -tnginx检查配置文件是否正确,同时显示配置文件路径nginx -c...

我爱吃炒鸡
38分钟前
1
0

没有更多内容

加载失败,请刷新页面

加载更多

返回顶部
顶部