在实际工作中,选择一个合适的存储引擎是一个很复杂的问题。每种存储引擎都有各自的优势,不能笼统的说谁好谁不好。原谅我说了一句废话。
OK,现在我们将对各个存储引擎的特点进行对比,给出不同情况下选择存储引擎的建议。
首先呢,我们来从存储引擎的事务安全,存储限制,空间使用,内存使用,插入数据的速度和对外键的支持这几个角度来做一个比较。
关于上表的解释:
1,InnoDB存储引擎:InnoDB存储引擎支持事务处理,支持外键。同时支持奔溃修复能力和并发控制。
如果需要对事务的完整性要求比较高,要求实现并发控制,那选择InnoDB存储引擎有很大的优势。
如果需要频繁的进行更新,删除操作的数据库,也可以选择InnoDB存储引擎。因为该类存储引擎可以实现事务的提交和回滚。
2,MyISAM存储引擎:MyISAM存储引擎的插入数据快,空间和内存使用比较低。
如果表主要是用于插入新记录和读出记录,那么选择MyISAM存储引擎能实现处理的高效率。
如果应用的完整性,并发性要求很低,也可以选择MyISAM存储引擎。
3,Memory存储引擎:Memory存储引擎的所有数据都在内存中,数据的处理速度非常快,但安全性不高。
如果需要很快的读写速度,对数据的安全性要求较低,可以选择Memory存储引擎。
Memory存储引擎对表的大小有要求,不能建立太大的表。所以,这类数据库值使用与相对较小的数据库表。
这里再来整理一个小的技巧:
1,如果一个表要求较高的事务处理,可以选择InnoDB。
2,这个数据库中可以将查询要求比较高的表选择MyISAM存储引擎。
3,如果需要该数据库中一个用于查询的临时表,可以选择Memory存储引擎。