如何选择合适的MySQL存储引擎:
前面已经介绍了四种常用的引擎,因此在应该根据应用选择合适的存储引擎,对于复杂的应用,还可以结合实际情况选择多种存储引擎进行组合。
1)MyISAM存储引擎:是默认的MySQL插件式存储引擎。如果应用是以读操作和插入操作为主,很少更新和删除数据,并且对事物的完整性、并发性要求不高。那么选择该存储引擎很合适。MyISAM是在Web、数据仓储和其它应用环境下最常使用的存储引擎之一。
2)InnoDB存储引擎:用于事务处理的应用程序,支持外键。如果应用对事务的完整性比较高,在并发条件下要求数据的一致性,数据操作除了出入和查询外,还有更新和删除,那么InnoDB存储引擎是比较合适的。InnoDB存储引擎除了有效的降低由于删除和更新导致的锁定,还可以确保事务的完整性和回滚。对于计费系统或者对数据的准确性要求较高的系统,都可以选择InnoDB存储引擎。
3)MEMORY存储引擎:将所有数据保存在RAM中,在需要快速定位记录和其它类似数据的环境下,可以提供极快的访问。缺陷是对象的大小受到限制,太大的表无法缓存在内存中,其次是要确保表的数据可以恢复,数据库异常终止后,数据时可以恢复的。MEMORY通常用于更新不太频繁的小表,用于快速访问到结果。
4)MERGE存储引擎:用于将一系列等同的MyISAM表以逻辑方式组合到一起,并作为一个对象访问他们。优点在于可以突破对单个MyIAM表的大小限制,并且通过不同的表分布在多个磁盘上,可以有效的改善MERGE表的访问效率。这对数据仓储等VLDB环境十分合适。