2012-02-05 15:51 MySQL存储引擎的选择
存储引擎的选择:
1.事务
如果应用需要事务处理操作,InnoDB仍是最稳定的、良好集成的、已经被证明的一种选择。
如果不需要事务处理,并且主要操作是处理一些select或insert查询,MyISAM是很好的选择。
2.并发
如果只是需要并发的插入和读操作,MyISAM都是正确的选择。
如果需要混合性的并发操作,并且操作之间要互不干扰,那么支持行级锁的引擎是更好的选择。
3.备份
如果服务器可以周期性地停机,来进行备份,各种引擎都能很容易务份。
但如果需要某种联机备份,选择就复杂了。
4. 崩溃后恢复
如果有大量的数据,应慎重考虑,系统崩溃后需要花多长时间才能恢复。
如MyISAM表比InnoDB表更容易出错,恢复时间也更长。事实上,很多人并不需要事务处理,
也选择了InnoDB引擎,就是基于这个重要原因。
5.特有特性
只有某些引擎提供特殊性或优化手段。
例如,很多应用都依赖于聚集索引优化。这种情况下,只有InnoDB和solidDB可以选择。
别一方面,在MySQL中,也只有MyISAM支持全文检索。
如果某个存储引擎可以满足应用的一个或若干重要需求,但又不支持别的需求时,就要做折
衷考虑了,或寻找一种更灵巧的设计方案。
通常的情况是,某种存储引擎可以满足所有的需要,虽然从表面上看似乎不支持全部需求。