mysql+本地调优工具,最佳MySQL性能调优工具?

坏消息:有GUI工具来帮助这个,但它的技能和广泛的工作。所以他们不覆盖一切,它可能需要使用命令行的东西/ sql语句等帮助。我只真的使用命令行工具。我会给出一些我已知/已使用的东西的概述:

首先,你需要一个好的数据库设计。如果设计不好,你只能得到这么远。这包括规范化,以及为字段使用适当的类型。我会把这一点留在这里,因为我认为它有点旁白,而不是你的后。

确保MySQL查询缓存已设置和工作,并给它一个更多的RAM,如果可以,并确保您的重要查询不做任何阻止mysql缓存他们。例如,在查询中使用NOW()函数,这是明显的原因 – 每秒更改一次!您可以将时间戳放入sql中,并使用到最近的分钟/小时/天(您可以离开的最长时间)的时间,以允许mysql获得一些缓存的好处。

开始优化事情:在select前面粘贴“EXPLAIN”是查看查询如何执行和idetify如何改进的方式。学习解释输出: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是一个很好的工具。

它可以做的不仅仅是慢查询日志分析 – 阅读手册。但要解释它对慢日志的作用:慢查询日志可以包含大量数据,因此可能很难找出哪些查询是最昂贵的总体 – 例如:其运行的次数,以及两个查询实际上与where子句中的不同id是相同的。

MySQL sla为您做这一切。它运行通过日志,并且可以对在where子句中具有不同值的相同/具有不同值的查询进行分组。然后,它(默认)显示前10个查询的总执行时间 – 这通常有一些惊喜,但通常是最有效的起点 – 采取最昂贵的查询,并使用EXPLAIN上,看看你是否可以改进它。

有些查询需要很长时间,不能轻易改进。在这种情况下,你能否以另一种方式获取数据或至少缓存它?您甚至可能会发现更改数据库模式是必需的。类似地,一些查询可能在mysqlsla输出的顶部,因为你运行它们很多(尤其是如果long_query_time设置为0),即使它们运行得很快。也许是时候添加一些缓存到你的应用程序?

http://www.maatkit.org/也看起来很有前途 – 从来没有使用它,但mk-query-profiler工具应该有用,进一步查找为什么查询慢。

一个完全独立的东西,看看:PHPMYADMIN中的“状态”页面(或者你可以运行所有的查询生成这个信息….) – 它突出的事情,它认为可能是红色的,可以帮助你看到您可能从分配系统资源中获益。我不知道这么多 – 我的方法一直是,如果一些是红色的,看起来不好,去看看它,并决定它的重要性,以及是否应该做某事(通常意味着分配更多的资源到MySQL通过更改config)。

最近我发现,运行SHOW PROCESSLIST也可以在受苦的服务器上有用。虽然它只给你生活(以及一个实时快照)信息,它可以帮助你了解在给定时间发生了什么,特别是如果你刷新几次,并观察变化。我最近发现一个服务器使用每个可用的mysql连接运行相同的查询使用这种方法。当然,它一直在慢查询日志,但这是一个真正快速和明显的方式来看看是什么。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值