我在相当复杂的网站(PHP驱动)中使用MySQL。
理想情况下,我可以使用一种工具来帮助我测试我正在使用的SQL查询,并建议更好的表索引来提高性能并避免表扫描。
如果失败了,那就会告诉我每个查询到底是什么,所以我可以自己进行优化。
编辑:理解EXPLAIN输出的简单指南...也很有用。
谢谢。
答案 0 :(得分:18)
好的,在我回答之前,订阅MySQL Performance Blog,我已经学到了很多东西(我以为我已经对MySQL了解很多)。此外,他还有一个bitchin'工具页面here。
第二关,这里有一些关于EXPLAIN的信息(参考O'Reilly的高性能MySQL书籍):
当您在查询上运行EXPLAIN时,它会以查询中涉及的每个表的报告形式告诉您MySQL查询该查询的所有内容。
这些报告中的每一个都会告诉你......
这本书在提供这样的信息方面非常棒,所以如果你还没有,请让你的老板签署购买协议。
否则,我希望更有知识渊博的SO用户可以提供帮助:)
答案 1 :(得分:4)
最简单的事情是,启用慢速查询日志并查看哪些查询速度慢,然后尝试按照建议进行分析。
答案 2 :(得分:3)
可能有查询分析器,但是对它进行简单的第一次切割 使用mysql命令行,输入“explain select * from foo where bar ='abc'”。确保您最常见的查询使用索引,尝试避免顺序扫描或各种大表。
答案 3 :(得分:2)
EverSQL https://www.eversql.com
它将分析您的慢查询并生成索引并为您提供一些提示。
答案 4 :(得分:1)
您应该查看Maatkit,这是一个用于执行各种MySQL任务的开源工具包。如果没有关于您正在尝试调整的内容的更多信息,很难告诉您使用哪些工具以及如何使用,但文档非常出色并且涵盖了很多应用程序。
答案 5 :(得分:0)
我用于其余sql调整的工具(SQLyog)有一个新版本,其中包含一个分析器,非常棒! (我不为他们工作 - 我只是使用他们的产品)