MySQL香港服务器选择合适的引擎

作者:港云互联 时间:2019-09-25

        这么多存储引擎,我们怎么选择?大部分情况下,InnoDB都是正确的选择,所以Oracle在MySQL 5.5版本时终于将InnoDB作为默认的存储引擎了。对于如何选择存储引擎,可以简单地归纳为一句话:“除非需要用到某些InnoDB不具备的特性,并且没有其他办法可以替代,否则都应该优先选择InnoDB引擎"。例如,如果要用到全文索引,建议优先考虑InnoDB加上Sphinx的组合,而不是使用支持企文素引的MyISAM。当然,如果不需要用到InnoDB的特性,同时其他引擎的特性能够更好地满足需求,也可以考虑一下其他存储引擎。举个例子,如果不在乎可扩展能力和并发能力,也不在平崩清后的数据丢失问题,却对InnoDB的空间占用过多比较敏感,这种场合下选择MyISAM就比较合适。


        除非万不得已,否则建议不要混合使用多种存储引擎,否则可能带来一系列复杂的问题,以及一些潜在的bug和边界问题。存储引擎层和香港服务器层的交互已经比较复杂,更不用说混合多个存储引擎了。至少,混合存储对致性备份和香港服务器参数配置都带来了一些困难。

香港服务器

如果应用需要不同的存储引擎,请先考虑以下几个因素。


        事物


如果应用需要事务支持,那么InnoDB (成者XtraDB)是目前最稳定并且经过验证的选择。如果不需要事务,井且主要是SELECT和INSERT操作,那么MyISAM是不错的选择。般H志型的应用比较符合这一特性。


        备份


备份的需求也会影响存储引擎的选择。如果可以定期地关闭香港服务器租用来执行备份,那么备份的因素可以忽略,反之,如果需要在线热备份,那么选择inoDB就是基本的要求。


        崩溃恢复


数据量比较大的时候,系统崩溃后如何快速地恢复是个需要考虑的问题。相对而言,MyISAM前请后发生损坏的概率比InoDBD要高很多,而且恢复速度也要慢。因此,即使不需要事务支持,很名人也选择InnoDB引擎,这是一个非常要的因素。


        特有的特性


最后,有些应用可能依赖此存储引擎所独有的特性或者优化,比如很多应用依赖聚簇索引的优化。另外, MySQL中也只有MyISAM支持地理空间搜索。如果个存储引擎拥有“此关键的特性,同时却又缺乏一些必要的特性,那么有时候不得不做折中的考虑,或者在架构设计上做些取舍。某些存储引擎无法直接支持的特性,有时候通过变通也可以满足需求。


        你不需要现在就做决定。接下来会提供很多关于各种存储引擎优缺点的详细描述,也会讨论此架构设计的技巧。一般来说,可能有很多选项你还没有意识到,等阅读完回头再来看这个问题可能更有帮助些。如果无法确定,那么就使用InnoDB,这个默认选项是安全的,尤其是搞不清楚具体需要什么的时候。


        如果不了解具体的应用,上面提到的这些概念都是比较抽象的。所以接下来会讨论一些常见的应用场景,在这些场最中会涉及很多的表,以及这些表如何选用合适的存储引擎,下一节将进行些总结。


日志型应用


        假设你需要实时地记录一台中心电话交换机的每. 通电话的日志到MySQL中,或者通过Apache的mod log. sql模块将网站的所有访问信息直接记录到表中。这一类应用的插入速度有很高的要求,数据库不能成为瓶颈。MyISAM或者Archive存储引擎对这类应用比较合适,因为它们开销低,而且插入速度非常快。


        如果需要对记录的日志做分析报表,则事情就会变得有趣了。生成报表的SQL很有可能会导致插入效率明显降低,这时候该怎么办?


        一种解决方法,是利用MySOL内置的复制方案将数据复制份到备库,然后在备库上执行比较消耗时间和CPU的查询。这样主本只用于高效的插人工作,而备库上执行的查询也无须担心影响到日志的插入性能,当然也可以在系统负载较低的时候执行报表查询操作,但应用在不断变化,如果依赖这个策略可能以后会导致问题。


        另外一种方法,在日志记录表的名字中包含年和月的信息,比如web_logs_2012_01或者web_logs_2012_jan。 这样可以在已经没有插入操作的历史表上做频繁的查询操作,而不会干扰到最新的当前表上的插入操作。






新人注册,即送价值满880元现金劵

立即注册>>
客服 电话 反馈 活动 回顶部

服务热线

+852-5764-9835

1对1贴心服务

7*24小时热线