大飞_dafei

导航

MyISAM与innoDB存储引擎有何差别

A、两者在文件构成上有区别;
B、InnoDB支持事务处理,MyISAM不支持;
C、对无WHERE子句的COUNT(*)操作的不同:MyISAM中保存了该值,直接读取,InnoDB需要作全表扫描;
D、锁的区别:InnoDB支持表级锁和行级锁,MyISAM只支持表级锁;
E、索引会缓存数据,而MYISAM不会;
F、INNODB不区分char和varchar;
G、INNODB支持hash索引,而MYISAM不支持;
H、InnoDB不支持FULLTEXT类型的索引;
I、InnoDB 中不保存表的具体行数,也就是说,执行select count(*) from
table时,InnoDB要扫描一遍整个表来计算有多少行,但是MyISAM只要简单的读出保存好的行数即可。注意的是,当count(*)语句包含
where条件时,两种表的操作是一样的;
J、对于AUTO_INCREMENT类型的字段,InnoDB中必须包含只有该字段的索引,但是在MyISAM表中,可以和其他字段一起建立联合索引;
K、DELETE FROM table时,InnoDB不会重新建立表,而是一行一行的删除;
L、LOAD TABLE FROM
MASTER操作对InnoDB是不起作用的,解决方法是首先把InnoDB表改成MyISAM表,导入数据后再改成InnoDB表,但是对于使用的额外的InnoDB特性(例如外键)的表不适用。

posted on 2018-11-09 00:35  大飞_dafei  阅读(88)  评论(0编辑  收藏  举报