1500字范文,内容丰富有趣,写作好帮手!
1500字范文 > MySQL存储引擎InnoDB MyISAM

MySQL存储引擎InnoDB MyISAM

时间:2018-12-20 04:51:31

相关推荐

MySQL存储引擎InnoDB MyISAM

MySQL存储引擎InnoDB,MyISAM

1、区别:

(1)InnoDB支持事务,MyISAM不支持,对于InnoDB每一条SQL语言都默认封装成事务,自动提交,这样会影响速度,所以最好把多条SQL语句放在begin和commit之间,组成一个事务;

(2)InnoDB支持外键,而MyISAM不支持。对一个包含外键的InnoDB表转为MYISAM会失败;

(3)InnoDB是聚集索引,数据文件是和索引绑在一起的,必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而MyISAM是非聚集索引,数据文件和索引是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。

(4)InnoDB不保存表的具体行数,执行select count(*) from table时需要全表扫描。而MyISAM用一个变量保存了整个表的行数,执行上述语句时只需要读出该变量即可,速度很快;

(5)Innodb锁的粒度更细,支持行锁,MyISAM不支持。

2、如何选择存储引擎

(1)是否要支持事务,如果要请选择innodb,如果不需要可以考虑MyISAM;

(2)如果表中绝大多数都只是读查询,可以考虑MyISAM,如果既有读写也挺频繁,请使用InnoDB;

(3)系统奔溃后,MyISAM恢复起来更困难,能否接受;

(4)数据量较大(3TB以上)时不要用MyISAM,崩溃后难以恢复。

InnoDB:数据完整性,并发性处理,擅长更新,删除。

MyISAM:高速查询及插入。擅长插入和查询。

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。