MYISAM和InnoDB的对比
首先对于InnoDB存储引擎,提供了良好的事务管理,奔溃修复能力(了redo log-重做日志)和并发控制,因为InnoDB支持事务,所以对于要求事务完整性的场合选择InnoDB,比如数据操作除了插入和查询外还包含很多更新,删除操作,像财务系统等对数据准确性要求比较高的系统;缺点是:读写效率较差,占用数据空间相对较大
其次对于MyISAM存储引擎,如果是小型应用,系统以读操作和插入操作为主,只有少量的更新,删除操作,并且对事务的要求不高,可选择MyISAM,该引擎的优点在于:占用空间小,处理速度快;缺点是:不支持事务和并发
对比项 | MyISAM | InnoDB |
---|---|---|
外键 | N | Y |
事务 | N | Y |
行表锁 | 表锁—即使操作一条记录也会锁住整个表,不适合高并发 | 行锁—只锁住一行,不影响其他行,适合高并发 |
缓存 | 只缓存索引,不缓存真实数据 | 即缓存索引也缓存数据,对内存要求较高 |
自带系统表使用 | Y | N |
关注点 | 性能:节省资源,消耗少,简单业务 | 事务:并发写,事务,更多资源 |
默认安装 | Y | Y |
默认使用 | N | Y |