当前位置:首页 > 工业控制 > 电子设计自动化

与所有的关系型数据库一样,MySQL仿佛是一头让人难以琢磨的怪兽。它会随时停摆,让应用限于停滞,或者让你的业务处于危险之中。

事实上,许多最常见的错误都隐藏在MySQL性能问题的背后。为了确保你的MySQL服务器能够一直处于全速运行的状态,提供持续稳定的性能,杜绝这些错误是非常重要的。然而,这些错误又往往隐藏在工作负载和配置问题之中。幸运的是,许多MySQL性能问题都有着相似的解决方案,这使得排除故障与调整MySQL成为了一项易于管理的任务。以下就是10个让MySQL发挥最佳性能的技巧。1.分析工作负载通过分析工作负载,你能够发现进一步调整中最昂贵的查询。在这种情况下,时间是最重要的东西。因为当你向服务器发出查询指令时,除了如何快速完成查询外,你很少关注其他的东西。分析工作负载的最佳方式是,使用诸如MySQL Enterprise Monitor的查询分析器,或者Percona Toolkit的pt-query-digest等工具。这些工具能够捕捉服务器所执行的查询,以降序的方式根据响应时间列出任务列表。它们会将最昂贵的和最耗时的任务置顶,这样你就能知道自己需要重点关注哪些地方。工作负载分析工具将相似的查询汇聚在一行中,允许管理者查看速度慢的查询,以及查看速度快但已多次执行的查询。2.理解四个基本资源功能性方面,一个数据库服务器需要四个基本资源:CPU、内存、硬盘和网络。如果这四个资源中任何一个性能弱、不稳定或超负载工作,那么就可能导致整个数据库服务器的性能低下。理解基本资源在两个特定的领域中至关重要:选择硬件和排除故障。在为MySQL选择硬件时,应该确保全部选用性能优异的组件。这些组件相互匹配,彼此间能够实现合理平衡也很重要。通常情况下,企业会为服务器选择速度快的CPU和硬盘,但是内存却严重不足。在一些案例中,大幅提升性能的最廉价方式是增加内存,尤其是对于那些受制于磁盘读取速度的工作负载。这似乎看起来有点违背常理,但是在许多案例中,由于没有充足的内存以保存服务器正在使用的数据,因此导致了硬盘被过度使用。关于获取这种平衡的另一个例子是CPU。在许多案例中,如果CPU速度快,那么MySQL的性能就非常出色,因为每一个查询都是单线程运行,而无法在CPU间并行运行。在进行故障排除时,应该检查这四个资源的性能和使用情况,关注它们是否性能低下或是超负荷工作。这方面的知识能够帮助你快速地解决问题。3.不要将MySQL作为队列使用队列以及与队列相似的访问方案会在你不知情的情况下悄悄地进入应用之中。例如,你设置了一个项目状态,以便在执行前,特定的Worker Process(工作进程)能够对其进行标记,那么你就等于在无意间创建了一个队列。例如,将电子邮件标记为未发送,然后发送它们,最后再将它们标记为已发送。队列会导致出现一些问题,这里面有两大主要原因:它们对工作负载进行了序列化,阻碍任务被并行处理。这导致正在处理中的任务和以前在工作中处理过的历史数据会被根据序列排列在一个表单中。这样一来既增加了应用的延时,也增加了MySQL的负载。4.以最廉价的方式过滤结果优化MySQL的最佳方式是首先要做廉价和不精确的工作,然后再小规模地做困难的精确工作,最后再生成数据集。例如,假设你计算某一个地理坐标点给定半径内的面积。在许多程序员的工具箱里第一个工具就是球面半正矢公式,以计算出球面的长度。这一方法的问题是,该方程式需要许多三角函数运算,需要拥有很强运算能力的CPU。球面半正矢计算不仅运行速度慢,而且会导致机器CPU的使用率飙升。在使用球面半正矢公式前,你可以先分解计算。有些分解计算并不需要使用三角函数。5.弄清两个扩展性死亡陷阱扩展性可能并不像你认为的那样模糊。实际上,扩展性有着精确的数学定义,它们以方程式的形式被表示出来。这些方程式既指出了系统无法扩展的原因,同时也指出了它们应该进行扩展的原因。通用扩展定律(Universal Scalability Law)揭示和量化了系统的扩展性特征。其通过两个基础性成本解释了扩展问题:即序列化与串扰(Crosstalk)。并行处理要求必须中止序列化,这就限制了它们的扩展性。同样的,如果并行处理需要始终进行彼此对话以协调工作,那么它就相互进行了限制。为了避免序列化与串扰,应用进行了更好的扩展。这些在MySQL内部被翻译成了什么?结果不尽相同。不过,一些案例应该避免锁定在特定的行之中。就像第3个技巧中所提到的,队列扩展性差的原因就是如此。6.不要过分关注配置数据库管理员会花费许多时间调整配置。调整的结果通常不会有很大的改善,相反有时候会带来损害。我发现许多经过“优化的”服务器,在进行强度稍微高一点的运算时常常出现崩溃、内存不足和性能低下等问题。虽然MySQL在交付时的默认设置严重过时,但是你并不需要对每一项都进行配置。最好是根据需要,进行基本纠正与设置调整。有10个选项调整正确,即可让服务器发挥95%的最大性能。在许多案例中,我们并不推荐所谓的调整工具,因为它们只是提供一个大概设置,对特定案例没有任何意义。有些工具甚至包含有危险的和错误的设备代码。7.注意分页查询分页查询应用会使服务器性能大降。这些应用会在网页上显示搜索结果,然后通过链接跳转至相应网页上。通常这些应用无法使用索引进行聚合与分类,而是使用LIMIT和OFFSET语句,这导致服务器工作负载大幅增加,并放弃行。 在用户界面上常常会发现优化选项。替代在结果中显示网页数量,以及分别与每个网页相连的链接。这样便可以仅显示至下一页的链接。你还可以阻止查询者浏览与首页过远的网页。8.保存统计数据,提高报警阀值监控与报警必不可少,但是监控系统被怎么处理了呢?当它们发布假的报警信息时,系统管理员会设置电子邮件过滤规则,以停止这些噪音。很快你的监控系统就彻底没用了。个人认为,应该以下面的两种方式进行监控:捕捉指标与报警。尽可能地捕捉与保存指标非常重要,因为在你试图搞明白系统中需要做哪些调整时,你会庆幸之前保存了它们。如果某一天出现奇怪问题时,你会很高兴自己有能力绘制出服务器工作负载变化的图形。9.了解索引的三大规则索引可能是数据库中被误解最多的一项。因为它们的工作方式有许多种,这导致人们常常对索引如何工作,以及服务器如何使用它们感到困惑。要想彻底搞清楚它们需要花上很大一番功夫。在被正确设计时,索引在数据库中主要用于实现以下三个重要目的:1.它们让服务器寻找相邻行群组,而不是单个行。许多人认为,索引的目的是寻找单个行,但是寻找单个行会导致随时磁盘操作,速度很慢。寻找行群组就要好许多,与一次寻找一个行相比,这更具吸引力。2.它们让服务器避免以期望的读行顺序对检索结果排序,排序成本十分高昂。以期望的顺序读行速度将更快。3.它们能够满足来自一个索引的所有查询,从根本上避免了访问表单的需求。这被称为覆盖索引或索引查询。如果你能设计出符合这三个规则的索引与查询,那么你的查询速度将大幅提升。10.利用同行的专业知识不要孤军奋战。如果你在苦苦思考某个问题,并着手制订明智的解决方案,那么这非常不错。在20次中,有19次问题会被顺利解决。但是其中会有一次让你不知所措,导致耗费大量的资金和时间,准确地说,是因为你正在尝试的解决方案只是貌似合理。创建一个MySQL相关资源网的意义远远大于工具集与故障排除指南。许多经验丰富的专业人员就隐藏在论坛、问答网站之中。会议、展览以及本地用户集体活动,都会为我们提供获得新见解的机会和与同行建立联系的机会,关键时刻这将对你很有帮助。

本站声明: 本文章由作者或相关机构授权发布,目的在于传递更多信息,并不代表本站赞同其观点,本站亦不保证或承诺内容真实性等。需要转载请联系该专栏作者,如若文章内容侵犯您的权益,请及时联系本站删除。
换一批
延伸阅读

电解电容作为电子电路中的重要元件,其性能的好坏直接影响到整个电路的正常运行。因此,正确地测量电解电容的好坏对于保证电路的稳定性和可靠性至关重要。本文将详细介绍电解电容的测量方法,帮助读者了解如何准确地判断电解电容的好坏。

关键字: 电解电容 电子电路 性能

投入式液位计是一种常用的液位测量仪表,具有结构简单、安装方便、测量准确等特点。它通过测量液柱产生的静压力来间接测量液位高度,广泛应用于各种液体储罐、管道、水池等的液位测量。本文将详细介绍投入式液位计的使用说明。

关键字: 投入式液位计 液位测量仪表 性能

随着科技的飞速发展,嵌入式系统已经广泛应用于各个领域,如家用电器、工业机器人、医疗设备、汽车等。嵌入式系统具有低功耗、低成本、高可靠性等优点,因此受到越来越多的关注。嵌入式系统的核心是处理器,处理器的性能直接影响到嵌入式...

关键字: 嵌入式 处理器 性能

摘要:采用.Mg-Y2g3作为烧结助剂,利用光固化成形技术、结合气压烧结方法制备了高致密化程度和高性能的si3N4陶瓷。研究了.Mg-Y2g3烧结助剂总掺量对光固化成形si3N4陶瓷的相对密度、物相组成、显微结构、热学和...

关键字: 光固化成形 显微结构 性能

整流变压器与一般电力变压器的结构、性能、内部接线有很大区别,其容量表示方法在铭牌上也多种多样,有的铭牌上有额定容量,有的还注明形式容量、平均容量,有的注明多挡不同含义。整流变压器是一种用于将交流电转换为直流电的装置,通常...

关键字: 整流变压器 容量 性能

目前市场上,CPU主要是intel和AMD两大阵营,其中intel市场份额最大,也是CPU界龙头老大,自从AMD推出锐龙处理器之后,各项性能指标开始标上Intel平台,并且走性价比路线,如今相比intel平台差距在不断缩...

关键字: CPU 处理器 性能

虽然现在很多人表示,手机芯片性能已过剩,买手机不用管芯片,只要觉得好用,价格合适就行,买就是了,所以根本就不用管什么参数等。但手机芯片依然是最重要的核心部件,手机芯片档次就注定了一台手机的基础能力,所以了解手机芯片,依然...

关键字: 手机 芯片 性能

采用针脚式接口对应到主板上就有相应的插槽类型。CPU接口类型不同,在插孔数、体积、形状都有变化,不能互相接插。

关键字: CPU 针脚 性能

12月2日消息,日前,安兔兔公布了11月安卓旗舰手机性能排行,得益于换代的优势,天玑9200新旗舰登顶榜首,力压一众骁龙8+手机,成为目前安卓天花板。

关键字: 安兔兔 手机 性能

Arm宣布Neoverse再度进阶,新增两个全新的平台—Arm Neoverse V1平台以及第二代的N系列平台Neoverse N2,N2与V1未来将分别代表最高单芯片性能和最高单线程性能。Arm Neoverse全新...

关键字: ARM Neoverse 性能
关闭
关闭