InnoDB 索引和 MyISAM 索引的区别,索引的优缺点

1)存储结构(主索引/辅助索引) InnoDB 的数据文件本身就是主索引文件。而 MyISAM 的主索引和数据是分开的。 InnoDB的辅助索引 data 域存储相应记录主键的值而不是地址。 而 MyISAM 的辅助索引和主索引没有多大区别。 innoDB是聚簇索引,数据挂在逐渐索引之下。
2)锁: MyISAM 使用的是表锁;InnoDB 使用行锁
3)事务: MyISAM没有事务支持和 MVCC;InnoDB 支持事务和 MVCC
4)全文索引: MyISAM 支持 FULLTEXT 类型的全文索引;InnoDB 不支持 FULLTEXT 类型的全 文索引,但是 InnoDB 可以使用 sphinx插件支持全文索引,并且效果更好
5)主键: MyISAM 允许没有任何索引和主键的表存在,索引都是保存行的地址; InnoDB 如果没有设定主键或非空唯一索引,就会自动生成一个 6 字节的主键,数据是主索引的一部 分,附加索引保存的是主索引的值
6)外键:MyISAM 不支持;InnoDB 支持

你可能感兴趣的:(数据库,mysql,oracle,db2,mongodb,索引)