MyISAM方便与查询,查询速度很快,因而为了优化查询,它不支持外键、事务、索引也是非聚集的;同时它的锁支持表级锁;支持全文检索;保存表具体的行数;
其实很好理解;索引是为了加快查询的;而使用非聚集的索引使得表数据和索引分开存储;这样查询的时候,索引长度更短,速度更快;
为了更快的查询速度,抛弃了索引和外键;
因为更频繁的读取数据;为了防止出现幻读,而把锁的级别提高为表级锁;
相反 InnoDB为了安全的进行CRUD,牺牲了查询效率;因而不支持外键、事务、索引是聚集的等等....
MyISAM更多的时候使用在查询较多的数据上
MyISAM | InnoDB | |
索引 | 非聚集 | 聚集 |
事务 | 不支持 | 支持 |
外键 | 不支持 | 支持 |
锁 | 行级 | 表级 |
表的具体行数 | 保存 | 不保存 当调用count方法的时候需要扫描全表 |
全文检索 | 支持 | 不支持 |