区别
1. myisam锁粒度表级,innodb是行级
2. myisam不支持事务,innodb支持
3. myisam不支持外键,innodb支持
4. myisam支持全文索引,innodb(mysql5.6及以后)支持
5. myisam表在磁盘上存储成三个文件。分别为:表定义文件、数据文件、索引文件。innodb数据文件和索引文件一起存储。
6. myisam允许不存在主键的表存在,innodb即使不设置主键,也会默认生成隐藏主键。
7. myisam查询select count(*) 直接返回表计数器速度很快,innodb需要全表扫描
8. InnoDB 是聚集索引,MyISAM 是非聚集索引。聚簇索引的文件存放在主键索引的叶子节点上,因此 InnoDB 必须要有主键,通过主键索引效率很高。但是辅助索引需要两次查询,先查询到主键,然后再通过主键查询到数据。因此,主键不应该过大,因为主键太大,其他索引也都会很大。而 MyISAM 是非聚集索引,数据文件是分离的,索引保存的是数据文件的指针。主键索引和辅助索引是独立的。
网友评论