数据库引擎MyISAM和InnoDB的区别

Posted 老赖的小弟

tags:

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


一、MyISAM

1、不支持事物,但每次查询都是原子性
2、支持表级锁,即每次操作是对整个表加锁
3、采用非聚簇索引,索引文件的数据域储存指向文件的指针,弗索引域主索引一致,但是辅索引不用保证唯一性
4、储存表的总行数
5、储存表在文件夹中的显示:
一个MyISAM表有三个文件:索引文件、表结构文件、数据文件

二、InnoDB

1、支持ACID事物,支持事物的四种隔离级别
2、支持行级锁及外键约束,因此支持并发
3、不储存表的总行数
4、一个InnoDB引擎储存在一个文件空间(共享表空间,表大小不受操作系统控制,一个表可能分布在多个文件里),也有可能分为多个(设置为独立空表,表大小受操作系统文件大小限制,一半为2G),受操作系统文件大小的限制
5、主键索引采用聚簇索引(索引的数据域存储数据本身),辅索引的数据储存主键的值,因此从辅助索引查找数据,需要先通过辅索引找到主键值,再访问辅索引,索引最好用使用自增主键(比如mysql的储存结构是B+树),防止插入数据时,为维持B+树结构,文件的大挑战


小结

MyISAM相对于InnoDB在要更好,InnoDB相对于MyISAM在要更好

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

Mysql存储引擎MyIsAM和InnoDB区别

INNODB与MyISAM两种表存储引擎区别

常用mysql数据库引擎——MyISAM和InnoDB区别

MyISAM和InnoDB存储引擎的区别

深入理解MySql中Innodb引擎和MyIsam引擎的区别

mysql存储方式MyISAM 和 InnoDB的区别