注册有礼
< 返回资讯中心

七个让数据库跑的更快的优化建议

发布人:中嘉和信 发布时间:2018.01.10 来源:51cto

随着容量和负载的增加,MySQL的性能会日趋缓慢。性能是我们衡量应用的一种方式,而应用性能的一项指标就是用户体验,中嘉和信今天为大家分享MySQL数据库性能的7点必备技巧:

服务器托管

一、学习如何使用EXPLAIN

在您对数据库做任何设计决策时,有两个方面非常重要:

应用实体之间如何被映射到各个数据表(数据库模式架构)上。

应用程序如何获取(查询)到它们所需格式类型的数据。

复杂的应用程序必然有着复杂的模式架构和查询。如果您想让自己的各种应用具备所需的性能和扩展性,那就不能单纯依靠直觉去理解各种查询的执行机制。

建议您认真学习如何去使用EXPLAIN命令,而不是凭空猜想。该命令会向您展示查询是如何被执行的;并深入地演示有关性能的真实表现情况,以及查询是如何伴随着数据量的变化进行扩展的。

二、创建正确的索引

索引是通过减少在数据库里查询时,必须扫描的数据量来提高查询的自身效率。

在MySQL中,索引被用于加快对数据库的访问,并有助于遵循数据库的各种约束(例如UNIQUE和FOREIGN KEY)。

需要注意的是:不要添加您所不需要的索引,因为不必要的索引会反过来拖慢数据库。

三、拒绝默认设置

就像其他任何软件那样,MySQL也能通过各种可配置的设置,来修改其行为并最终优化其性能。同时这些配置的设置经常会被管理员所忽略,并一直保持着默认值的状态。

为了让MySQL获得最佳的性能,了解如何配置MySQL,以及将它们设置为最适合您的数据库环境的状态是非常重要的。

四、将数据库载入内存中

近年来,出现了固态硬盘(SSD)方向上的转变。尽管固态硬盘比传统机械旋臂硬盘快得多,但是它们仍然敌不过将数据存在内存里。这种差别不仅来自于存储性能本身,还来自于数据库从磁盘或SSD里存取数据时所产生的额外工作。

随着近年来硬件技术的改进,不管您是运行在云端,还是管理着自己的硬件,将数据库载入内存已经变得可行。更令人振奋的是:您并不需要将整个数据库载入内存以获得其性能优势,您只需要将最频繁访问的数据集放入其中便可。

五、使用SSD存储

无论您的数据库是否已被载入内存,您都需要使用快速存储来处理写入操作,并且避免在数据库启动后(重启之后)出现性能问题。这里的快速存储就是指固态硬盘。

一些所谓的“专家”仍在基于成本和可靠性的基础上,主张使用机械旋臂硬盘。坦率地说,当涉及到数据库操作时,这些建议往往是过时的或是完全错误的。现如今,固态硬盘的性能已经非常卓越、可靠且价格低廉了。

并非所有的固态硬盘都是同等生产的。对于数据库服务器来说,您应该选用那些专供服务器工作负载、且能精心呵护数据的SSD。

六、横向扩展

即使是性能最高的服务器也有局限性。业界一般用两种方法来进行扩展:纵向和横向。

纵向扩展意味着购买更多的硬件。这样做不但成本昂贵,而且硬件折旧速度快。

而横向扩展,则在处理负载方面有如下几点优势:

您可以从更小型、成本更低的系统中获益。

横向扩展使得系统的线性扩展更方便、更快捷。

由于数据库会横跨增长到多个物理机上,横向扩展在保护数据库的同时,消除了硬件单点故障。

尽管横向扩展有着诸多优势,不过它还是具有一定的局限性。横向扩展需要数据复制,例如基本的MySQL Replication或是用于数据同步的Percona XtraDB群集。

但是作为回报,您也会获得更高的性能和可用性。如果您需要更高级的扩展性,那么请考虑使用MySQL分片(sharding)。

另外,您还需要确保连接到群集架构的应用程序可以找到它们所需的数据。这通常是通过诸如ProxySQL或HAProxy的一些代理服务器和负载平衡器来实现的。

当然,过早地规划横向扩展,会增加分布式数据库的复杂性。最近发布的MySQL 8候选版本已声称自己能够在单一的系统上处理超过200万个简单查询。

七、追求可视性

可视性是系统设计的最佳境界,MySQL也不例外。一旦完成了MySQL环境的搭建、运行并调优,您千万不要认为已经万事大吉了。数据库环境既会受到来自系统更改或流量负荷的影响,也会遇到例如流量高峰、应用程序错误以及MySQL自身的各种问题。为了快速、有效地解决各种问题,您需要建立和实施一些监控机制,从而能获悉数据库环境的状态,并在出现错误时及时分析服务器上的数据。因此理想情况就是在系统出现问题或是被用户所察觉之前就做到防范于未然。

中嘉和信将在行业发展中顺势而为,为用户提供更加优质的服务器托管等立体式一站解决方案,未来,中嘉和信将立足自我,与时俱进,与行业更多伙伴共同努力,借助在各自领域的领先技术及服务,为用户提供更多的智慧和资源,共绘生态,实现共赢!

相关文章推荐《服务器托管:如何挑选服务器托管提供商?

热门新闻

版权所有©2018年北京中嘉和信通信技术有限公司京ICP备09037838号-6京公网安备11010602110005号