【数据库】InnoDB和MyISAM的区别以及适用场景

目录

区别

        1.是否支持事务

        2.是否支持外键

        3.索引类型

        4.是否存储全表行数

        5.锁的类型

        6.索引要求

        7.存储文件

        8.适用场景


区别

        1.是否支持事务

                InnoDB支持事务,对于每条SQL语句都会默认封装为事务,为了提高速度可以把多条SQL放在begin和commit之间,形成一个事务

                MyISAM不支持事务

        2.是否支持外键

                InnoDB支持

                MyISAM不支持

        3.索引类型

                InnoDB为聚簇索引

                MyISAM为非聚簇索引

                具体可以看聚簇索引与非聚簇索引

        4.是否存储全表行数

                InnoDB不存储,获取行数要遍历全表

                MyISAM存储

        5.锁的类型

                InnoDB支持表级锁、行级锁(默认)

                MyISAM支持表级锁

                具体可以看【数据库】锁

        6.索引要求

                InnoDB必须有唯一索引(如主键)

                MyISAM可以没有

        7.存储文件

                InnoDB存储文件为表定义文件和数据文件

                MyISAM存储文件为表定义文件,数据文件,索引文件

        8.适用场景

                当增删改(写)操作多时,用Innodb

                当查(读)操作多时,用MyISAM

参考文章

MyISAM与InnoDB 的区别(9个不同点)_张花生的博客-CSDN博客_innodb和myisam的区别

你可能感兴趣的:(数据库,数据库,sql,database)