字段类型
MyISAM 和 InnoDB 的区别
- InnoDB支持事务,MyISAM不支持事务。这是InnoDB替代MyISAM成为默认存储引擎的原因。
- InnoDB支持外键,MyISAM不支持外键。
- InnoDB是聚集索引,MyISAM是非聚集索引。
- InnoDB不保存表的行数,执行select count(*)时会扫描全表,MyISAM用一个变量保存表的行数。
- InnoDB最小锁粒度是行锁,MyISAM最小锁粒度是表锁。
- InnoDB如果没有主键或非空唯一索引,会自动生成一个6字节的主键,数据是主索引的一部分,附加索引保存的是主索引的值;MyISAM允许没有任何索引和主键的表存在,索引都是保存行的地址。
<aside>
💡 MySQL5.7以后Innodb已经支持全文索引了,所以很多把全文索引作为区别之一是不严谨的
</aside>
如果需要事务支持,选择InnoDB,否则可以考虑MyISAM
如果不需要事务,且有大量select操作,选择MyISAM
如果有大量insert和update操作,选择InnoDB
SQL 分类