Mysql存储引擎MyIsAM和InnoDB区别

Posted 傍晚的羔羊

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Mysql存储引擎MyIsAM和InnoDB区别相关的知识,希望对你有一定的参考价值。

mysql 数据库中,最常用的两种引擎是innordb 和myisam。InnoDB 是Mysql 的默认存储引擎。

两者的区别:


1.事务处理上方面
MyISAM:强调的是性能,查询的速度比InnoDB 类型更快,但是不提供事务支持。
InnoDB:提供事务支持。


2.外键
MyISAM:不支持外键,

InnoDB:支持外键。


3.锁
MyISAM:只支持表级锁,

InnoDB:支持行级锁和表级锁,默认是行级锁,行锁大幅度提高了多用户并发操作的性能。innodb 比较适合于插入和更新操作比较多的情况,
而myisam 则适合用于频繁查询的情况。另外,InnoDB 表的行锁也不是绝对的,如果在执行一个SQL 语句时,MySQL 不能确定要扫描的范围,InnoDB 表同样会锁全表,
例如:update table set num=1 where name like “%aaa%”。


4.全文索引
MyISAM:支持全文索引,

InnoDB:不支持全文索引。innodb 从mysql5.6 版本开始提供对全文索引的支持。


5.表主键
MyISAM:允许没有主键的表存在。
InnoDB:如果没有设定主键,就会自动生成一个6字节的主键(用户不可见)。


6. 表的具体行数
MyISAM:select count(*) from table,MyISAM 只要简单的读出保存好的行数。因为MyISAM 内置了一个计数器,count(*)时它直接从计数器中读。
InnoDB:不保存表的具体行数,也就是说,执行select count(*) from table 时,InnoDB要扫描一遍整个表来计算有多少行。


















以上是关于Mysql存储引擎MyIsAM和InnoDB区别的主要内容,如果未能解决你的问题,请参考以下文章

mysql中myisam,innodb和memory三个存储引擎的区别

Mysql存储引擎MyIsAM和InnoDB区别

mysql存储方式MyISAM 和 InnoDB的区别

存储引擎:MyISAM和InnoDB区别

Mysql—Mysql的InnoDB和MyISAM存储引擎的区别

MySQL存储引擎MyISAM和InnoDB有哪些区别?