美文网首页
MySQL MyISAM和Innodb存储引擎的区别

MySQL MyISAM和Innodb存储引擎的区别

作者: 代码的搬运工 | 来源:发表于2020-02-05 13:56 被阅读0次

(1)InnoDB支持事务,MyISAM不支持事务。 

(2)InnoDB支持行锁也支持表锁,MyISAM支持表锁。

注:InnoDB的行锁是实现在索引上的,而不是锁在物理行记录上。潜台词是,如果访问没有命中索引,也无法使用行锁,将要退化为表锁。

表级锁:开销小,加锁快,不会出现死锁。锁定粒度大,发生锁冲突的概率高,并发量低。

行级锁:开销大,加锁慢,会出现死锁。锁力度小,发生锁冲突的概率小,并发量高。

(3) InnoDB支持外键,MyISAM不支持外键。

注:对一个包含外键的InnoDB表转为MyISAM表会失败。 

(4)Innodb不支持全文索引,而MyISAM支持全文索引。

注:MySQL 5.7以后的InnoDB支持全文索引。

(5)MyISAM表可以被压缩,InnoDB表不能被压缩。

(6)MyISAM适合查询以及插入为主的应用,InnoDB适合频繁修改以及涉及到安全性较高的应用。

(7)InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快。如果添加where条件,那么执行效率一样。

(8)MyISAM创建表生成三个文件:.frm(数据表结构)、.myd(数据文件)、.myi(索引文件),Innodb只生成一个 .frm文件,数据和索引存放在.ibd文件里。

相关文章

  • mysql(七)

    MySQL存储引擎-innodb 查看存储引擎 innodb和myisam的物理区别 innodb 核心特性 MV...

  • MySQL学习日记(十一)-技术问答

    一、MySQL主要存储引擎MyISAM和InnoDB的区别? 1、 存储结构 MyISAM:每个MyISAM在磁盘...

  • MySQL面试题和答案

    Mysql 的存储引擎,myisam和innodb的区别。答: 1.MyISAM 是非事务的存储引擎,适合用于频繁...

  • 面试题2

    Mysql 的存储引擎,myisam和innodb的区别。答: 1.MyISAM 是非事务的存储引擎,适合用于频繁...

  • 【转】mysql 面试题

    Mysql 的存储引擎,myisam和innodb的区别。 答: 1.MyISAM 是非事务的存储引擎,适合用于频...

  • MySQL面试题和答案

    Mysql 的存储引擎,myisam和innodb的区别。答: 1.MyISAM 是非事务的存储引擎,适合用于频繁...

  • 2018-03-19

    mysql MyISAM引擎和InnoDB的介绍 1、MyISAM MyISAM是MySQL的默认存储引擎,基于...

  • Mysql 的存储引擎的区别

    一.mysql中myisam,innodb和memory三个存储引擎的区别 1、区别:1) MyISAM管理非事务...

  • 浅谈MySQL分布式事物解决方案

    引言:MySQL存储引擎主要分为InnoDB、MyISAM,它们的主要区别是InnoDB支持事物,而MyISAM不...

  • MySql高级之常见的Join查询(一)

    MySql的存储引擎介绍 : 常用的MySql存储引擎只有两个:MyISAM以及InnoDB。 两个存储引擎的区别...

网友评论

      本文标题:MySQL MyISAM和Innodb存储引擎的区别

      本文链接:https://www.haomeiwen.com/subject/cearxhtx.html