当前位置: 首页 > 面试题库 >

最好的MySQL性能调整工具?[关闭]

仲孙善
2023-03-14
问题内容

按照目前的情况,这个问题不适合我们的问答形式。我们希望答案得到事实,参考或专业知识的支持,但是这个问题可能会引起辩论,争论,民意调查或扩展讨论。如果您认为此问题可以解决并且可以重新提出,请访问帮助中心以获取指导。

8年前关闭。

哪一种是MySQL最佳,用户友好的性能工具?我需要帮助来确定我的设置的瓶颈。是SQL语句,设置变量还是其他问题?


问题答案:

坏消息是:有GUI工具可以帮助解决此问题,但这是一项熟练而广泛的工作。因此,它们不能涵盖所有内容,可能您需要使用命令行的东西/
sql语句等来提供帮助。我只真正使用过命令行工具。我将概述一些我知道/曾经使用过的东西:

首先,您需要一个良好的数据库设计。如果设计不好,那么您只能走得太远。这包括规范化,以及对字段使用适当的类型。我将这一点留在这里,因为我认为这是一个问题,而不是您所追求的。

确保MySQL Query
Cache已设置并且可以正常工作,并且如果可以的话,给它更多的RAM,并确保您的重要查询没有采取任何措施阻止mysql对其进行缓存。例如,由于显而易见的原因,在查询中使用NOW()函数可以做到这一点-
NOW每秒都会变化!您可以改为在SQL中添加时间戳,并使用最接近的分钟/小时/天(您可以避免的最大时间)来使mysql获得一些缓存好处。

要开始进行优化,请执行以下操作:在select前面加上“
EXPLAIN”是查看查询如何执行并确定如何改进查询的方式。学习解释输出:http : //dev.mysql.com/doc/refman/5.0/en/using-
explain.html您通常可以在现有索引中添加新索引/添加列以改善性能。但是,您还会遇到需要重组查询的情况。

使用MySQL提高性能(假设您还不知道问题查询是什么)的开始是检查慢查询日志-它会将所有耗时超过x秒的查询记录到文件中。

概述,包括配置(如果尚未记录的话)位于:http : //dev.mysql.com/doc/refman/5.0/en/slow-query-
log.html-我还发现将long_query_time设置为0表示一天左右的时间,以便将所有查询都记录在此处并记录所花费的时间,这是一种有用的方法,可让您准确了解性能的发展方向。但是我不会立即去那里!而且不要将其保留,日志可能会变得很大。

完成几天的日志记录后,我从这里找到了mysqlsla(mysql缓慢日志分析器):http
://hackmysql.com/mysqlsla 是一个很好的工具。

它不仅可以进行缓慢的查询日志分析,还可以做更多的工作-
阅读手册。但是要解释一下它对慢速日志的作用:慢速查询html" target="_blank">日志可能包含大量数据,因此很难找出哪些查询是整体上最昂贵的-
例如:将它们运行多少次以及何时进行两次查询的因素考虑在内实际上,它们在where子句中具有相同的ID。

MySQL
sla为您完成了所有这一切。它遍历日志,并且可以对where子句中相同/具有不同值的查询进行分组。然后(默认情况下)向您显示总执行时间最多的10个查询-
这通常会让人感到有些意外,但通常是最有效率的起点-选择最昂贵的查询并对其使用EXPLAIN,看看是否可以改进它。

有些查询会花费很长时间,并且无法轻松进行改进。在这种情况下,您可以通过其他方式获取数据还是至少将其缓存?您甚至可能会发现需要更改数据库架构。类似地,某些查询可能位于mysqlsla输出的顶部,因为您运行了很多查询(即使long_query_time设置为0时尤其如此),即使它们运行得非常快。也许是时候为您的应用添加一些缓存了?

http://www.maatkit.org/看起来也很有希望-从未使用过,但是mk-query-
profiler工具应该对进一步研究查询变慢的原因很有用。

还需要查看一个完全独立的内容:PHPMYADMIN中的“状态”页面(或者您可以运行所有查询以生成此信息…。)-以红色突出显示它认为可能不好的内容,并且可以帮助您看看您可以从分配系统资源中受益。我对此并不太了解-
我的方法一直是,如果某些东西是红色的并且看起来很糟糕,请去阅读它,并确定它是否重要以及我是否应该做点什么(通常意味着向MySQL分配更多的资源)通过更改配置)。

最近,我发现在受苦的服务器上运行SHOW
PROCESSLIST也可能很有用。尽管它只提供实时(实时快照)信息,但它可以帮助您了解给定时间的状况,尤其是刷新几次并观察更改时。我最近发现了一个服务器,它使用每个可用的mysql连接使用此方法运行相同的查询。当然,它一直在缓慢的查询日志中,但这确实是查看结果的一种快速而明显的方法。



 类似资料:
  • 我为回归问题建立了一个模型,即从9个输入变量中预测一个值。该模型的开发是基于Keras库的人工神经网络 在这个使用编译和拟合方法的模型中,我已经预测了输出值。然而,我得到了糟糕的评价分数。我使用RMSE和R2评估了模型 (已归一化的)预测值和标记值之间的RMSE为0.207,(原始形式)预测值和标记值之间的RMSE为215,R2为0.4 如何修改模型以获得更好的结果(低RMSE和高R2)?或者这种

  • 主要内容:一、查看系统性能参数,,二、定位执行慢的SQL:慢查询日志,三、查看 SQL 执行成本:SHOW PROFILE,四、分析查询语句:EXPLAIN,EXPLAIN各列作用:一、查看系统性能参数 通过SHOW STATUS语句查询一些MySQL数据库服务器的性能参数、执行频率。 一些常用的性能参数如下: Connections:连接MySQL服务器的次数。 Uptime:MySQL服务器的上线时间。单位:s Slow_queries:慢查询的次数。 Innodb_rows_read:Se

  • 主要内容:内存设置,JVM设置,远程连接,分布式配置调整在本章中,可以了解一些关于如何优化使用OrientDB的应用程序的一般技巧。 有三种方法可以提高不同类型数据库的性能。 文档数据库性能调整 - 它使用一种技术来帮助避免为每个新文档创建文档。 对象数据库性能调整 - 它使用通用技术来提高性能。 分布式配置调整 - 它使用不同的方法来提高分布式配置的性能。 可以通过更改内存,JVM和远程连接设置来实现通用性能调整。 内存设置 内存设置有不同的策略来提

  • Nautilus文件管理器是Gonme中使用频率最高的工具之一,下面介绍几个提高Nautilus性能的方法,使我们能有效地使用该工具。 在Nautilus中,与性能相关的首选项通常都可有三个可选项值,通过调整这三个选项值可达到调整Nautilus性能的目的,这三个选项值分别是: 总是(always)---对本地文件和其它文件系统上的文件都有效。性能最差,占用CPU资源和网络带宽最多。 本地文件(l

  • 搜狗输入法安装之后,系统字体会发生变化,默认会变成楷体,非常不好看。 解决方案,删除下面的这两个字体文件 cd /usr/share/fonts/truetype/arphic sudo rm -f ukai.ttc uming.ttc 然后重启即可。

  • 现在临时的C库已经装好,接下来本章中要编译的所有工具应该连接到这些库上。为了达到这个目标,需要调整连接器和编译器的 specs 文件。 在第一遍编译 Binutils 快结束时已经调整过的连接器,现在需要被重新命名以便可以被正确的找到和使用。首先备份原来的连接器,然后用调整过的连接器来替代,最后还要创建一个指向 /tools/$(gcc -dumpmachine)/bin 中连接器副本的连接。 m