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