-
目录
-
如何正确的选择存储引擎
可以说这个大部分情况下的选择InnoDB存储引擎都是正确的,除非需要使用到某些InnoDB不具备特性,并且没有其他方法替代的时候,我们才应该去选择其它存储引擎,否则都应该使用InnoDB存储引擎,对我们的应用来进行数据存储,如果我们非要从众多的进行一下筛选,而不想直接使用InnoDB存储引擎的话,可以参考以下几个因素:
-
参考条件
- 事务【InnoDB是目前最稳定,并且经过验证的支持事务的存储引擎;如果不需要事务,主要是select、insert操作,那么MyISAM也可以使用;禁止insert,连select都很少的话也可以使用Archive存储引擎,比如说大多数的日志型应用,比较符合这一特性】
- 备份【如果可以定期的关闭服务器来进行备份,那么备份因素可以忽略,但是在生产环境中,数据库服务器基本上是不能有这样的条件,所以我们就必须要选择可以进行在线备份存储引擎,前面所提到的存储引擎中,只有InnoDB有免费的在线热备方案,其它的存储引擎要么不能在线热备,只能有收费的方案,mysqldump不是算一种热备的方案,关键它是进行逻辑备份,为了保证数据的一致性,要对备份的数据进行加锁,所以说它不是一种在线热备的方案】
- 崩溃恢复 【数据量比较大的时候,系统崩溃后如何快速的进行恢复,是一个需要考虑的问题,相对MyISAM比InnoDB损坏的概率高很多,而且恢复速度要更慢,即使不需要事务时,很多时候我们应该选择InnoDB】
- 存储引擎的特有特性 【比如:应用需要地理空间搜索】
-
建议
大家不要混合的使用存储引擎。