存储引擎的使用可以根据具体业务,组合使用多种存储引擎,以达到更好的性能,以下提供适用方案仅供参考,使用哪种存储引擎并不是绝对的,具体要看实际情况。
简单描述常用存储引擎的适用环境(myisam,innodb,memory,merge)
-
MyISAM:
1)适用情况:默认的mysql插件式存储引擎,应用以读和插入为主,较少的更新和删除操作,且对事务的完整性和并发性要求不高默认的mysql插件式存储引擎,应用以读和插入为主,较少的更新和删除操作,且对事务的完整性和并发性要求不高
2)使用场景:myisam在web,数据仓储和其他应用环境下是最常使用的存储引擎之一。 -
InnoDB:
1)作用:innodb可以有效降低删除、更新导致的锁定;确保事务的完整提交和回滚;用于事务处理应用程序,支持外键;
2)适用情况:应用对事务的完整性有比较高的要求,在并发条件下要求事务的一致性,数据操作除了插入和查询外,还包括很多更新和删除;
3)适用场景:类似计费系统或者财务系统等对数据准确性要求较高的系统,选择innidb比较合适。 -
MEMORY:
1)优点:将所有数据保存在ram中,在需要快速定位记录和其他类似数据的环境下,可提供极快的访问。
2)缺陷:对表的大小有限制,太大的表无法缓存在内存中,其次要确保表的数据可以恢复,数据库异常终止后表中的数据是可以恢复的
3)适用情况:memory表通常用来更新不太频繁的小表,用以快速得到访问效果。 -
MERGE:
1)适用情况:将一系列等同的myisam表以逻辑方式组合在一起,并作为一个对象引用他们。
2)优点:可以突破对单个myisam表大小的限制;且通过将不同的表分布在多个磁盘上,可以有效改善merge表的访问效率;
3)适用场景:诸如数据仓储等VLDB环境十分适合。
正确选择存储引擎对改善应用的效率可以起到事半功倍的效果,选择好存储引擎,还需要正确选择表中数据类型,后续会补发如何选择合适的数据类型。