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

InnoDB是事务型引擎,支持回滚、崩溃恢复能力、多版本并发控制、ACID事务,支持行级锁定(InnoDB表的行锁不是绝对的,如果在执行一个SQL语句时MySQL不能确定要扫描的范围,InnoDB表同样会锁全表,如like操作时的SQL语句),以及提供与Oracle类型一致的不加锁读取方式。InnoDB存储它的表和索引在一个表空间中,表空间可以包含数个文件。

主要区别:

MyISAM是非事务安全型的,而InnoDB是事务安全型的。
MyISAM锁的粒度是表级,而InnoDB支持行级锁定。
MyISAM支持全文类型索引,而InnoDB不支持全文索引。
MyISAM相对简单,所以在效率上要优于InnoDB,小型应用可以考虑使用MyISAM。
MyISAM表是保存成文件的形式,在跨平台的数据转移中使用MyISAM存储会省去不少的麻烦。
InnoDB表比MyISAM表更安全,可以在保证数据不会丢失的情况下,切换非事务表到事务表(alter table tablename type=innodb)。
应用场景:

MyISAM管理非事务表。它提供高速存储和检索,以及全文搜索能力。如果应用中需要执行大量的SELECT查询,那么MyISAM是更好的选择。
InnoDB用于事务处理应用程序,具有众多特性,包括ACID事务支持。如果应用中需要执行大量的INSERT或UPDATE操作,则应该使用InnoDB,这样可以提高多用户并发操作的性能。

常用命令:

  (1)查看表的存储类型(三种):

show create table tablename
show table status from  dbname  where name=tablename
mysqlshow  -u user -p password --status dbname tablename
  (2)修改表的存储引擎:

alter table tablename type=InnoDB
  (3)启动mysql数据库的命令行中添加以下参数使新发布的表都默认使用事务:

--default-table-type=InnoDB
  (4)临时改变默认表类型:

set table_type=InnoDB
show variables like 'table_type'

MySQL MyISAM和InnoDB存储引擎的比较相关推荐

  1. MySQL的MyISAM和InnoDB存储引擎表结构

    MySQL的MyISAM和InnoDB存储引擎表结构: MyISAM存储引擎: MyISAM表:每一个表都有3个文件,都位于数据库目录中. tb_name.frm 表结构定义 tb_name.MYD ...

  2. mysql内存报警_[MySQL生产环境] Innodb存储引擎内存报警问题处理过程_MySQL

    bitsCN.com [MySQL生产环境] Innodb存储引擎内存报警问题处理过程 1 不停的收到email报警,内存值超过阀值80%了. 2 top下,mysqld进程确实占据了77.5%,再加 ...

  3. mysql不支持innodb存储引擎

    工作中,不免会遇到前辈已经编译安装过的mysql,忽然发现mysql不支持innodb的存储引擎的问题,现在来看一下吧 一.先看mysql是否支持innodb存储引擎 mysql> show v ...

  4. Mysql技术内幕InnoDB存储引擎——InnoDB存储引擎

    特此申明: 前段时间找工作所以看了<Mysql技术内幕InnoDB存储引擎>,整理的时候除了参考网上已有的笔记贴,加上自己整合的,可能和别人有雷同之处.不过无所谓啦,写出来自己看看,需要的 ...

  5. mysql技术之innodb存储引擎

    mysql技术内幕InnoDB存储引擎 基本信息作者姜承尧类别技术-mysql简介第二版推荐指数阅读日期开始日期终止日期书摘mysql体系结构和存储引擎特点可移植数据库定义数据库和实例定义数据库物理操 ...

  6. MyISAM和InnoDB存储引擎的特点

    Mysql区别于其他数据库的一个重要特点是其插件式的表存储引擎,注意,存储引擎是基于表的,而不是基于数据库. MyISAM 特性 不支持事务:MyISAM存储引擎不支持事务,所以对事务有要求的业务场景 ...

  7. MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01

    MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-01 1. MySQL体系结构和存储引擎 1.1 定义数据库和实例 数据库database: 物理操作系统文件或其他形式文件类型的集合. 当使 ...

  8. MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02

    MySQL技术内幕-InnoDB存储引擎第2版-学习笔记-02 6. 锁 ​ 人们认为行级锁总会增加开销.实际上,只有当实现本身会增加开销时,行级锁才会增加开销.InnoDB 存储引擎不需要锁升级,因 ...

  9. MySQL内核:InnoDB存储引擎 卷1

    MySQL内核:InnoDB存储引擎卷1(MySQL领域Oracle ACE专家力作,众多MySQL Oracle ACE力捧,深入MySQL数据库内核源码分析,InnoDB内核开发与优化必备宝典) ...

最新文章

  1. iOS 静态类库项目的建立与使用
  2. Struts2学习8--文件上传(多个文件上传)
  3. update与merge
  4. c语言定义小数无穷小,OC中常用的数学函数以及浮点处理函数
  5. ssm radis mysql_SSM完美整合Redis
  6. MVC神韵---你想在哪解脱!(七)
  7. C#基础2:简单乘法表
  8. MongoTemplate 关于 insert 和 save 函数的区别
  9. Java中Set的使用
  10. 开发者经验谈:如何一天时间搞定iOS游戏开发?
  11. php 伪静态是什么意思,php伪静态的写法是什么
  12. fullcalendar 课程表 js 插件 日程安排操作 js
  13. 启动Storm的nimbus和supervisor时报错: ImportError: No module named argparse
  14. Angular6项目运行到95%emitting LicenseWebpackPlugin不动卡住
  15. 苹果cms重名视频怎么合并
  16. QImage的深拷贝与浅拷贝
  17. ckplayer播放器的style.zip(干货)
  18. Adobe Acrobat Reader DC 2019 (19.8)
  19. 今天帮朋友从微信里把视频下载下来(图文)
  20. Linux下Oracle常见问题之Oracle ORA-01033 ORACLE initialization or shutdown in progress

热门文章

  1. 【C语言】switch中无break的情况
  2. python中用来回溯异常的模块_python中的异常处理使用说明
  3. Python 中各种imread函数的区别与联系
  4. caffe学习笔记19-batchsize参数
  5. [日常] Go语言圣经--Channel习题
  6. foxmail、outlook发送邮件,进度条很慢
  7. Python中lambda使用简易教程
  8. 实现Operations Manager 2012 R2单一部署
  9. linux命令--cp
  10. Codeforces Round #220 (Div. 2)