我在一个相当复杂的网站(PHP 驱动)中使用 MySQL。
理想情况下,我可以使用一个工具来帮助我测试我正在使用的 SQL 查询,并建议更好的表索引来提高性能并避免表扫描。
如果做不到这一点,它会告诉我每个查询的确切内容,这样我就可以自己执行优化。
编辑:理解 EXPLAIN ... 输出的简单指南也会很有用。
谢谢你。
我在一个相当复杂的网站(PHP 驱动)中使用 MySQL。
理想情况下,我可以使用一个工具来帮助我测试我正在使用的 SQL 查询,并建议更好的表索引来提高性能并避免表扫描。
如果做不到这一点,它会告诉我每个查询的确切内容,这样我就可以自己执行优化。
编辑:理解 EXPLAIN ... 输出的简单指南也会很有用。
谢谢你。
以下是关于 EXPLAIN 的一些信息(引用自 O'Reilly 的高性能 MySQL 书):
当您在查询上运行 EXPLAIN 时,它会以查询中涉及的每个表的报告的形式告诉您 MySQL 所知道的关于该查询的所有信息。
这些报告中的每一个都会告诉您...
这本书在提供这样的信息方面非常棒,所以如果你还没有,让你的老板签字同意购买。
否则,我希望一些知识渊博的 SO 用户可以提供帮助:)
作为最简单的事情,启用慢查询日志并查看哪些查询很慢,然后按照建议尝试分析它们。
那里可能有查询分析器,但对于简单的第一次切入,请使用 mysql 命令行,然后键入“explain select * from foo where bar = 'abc'”。确保您最常见的查询使用索引,尽量避免顺序扫描或大表排序。
EverSQL https://www.eversql.com
它将分析您的慢查询并生成索引并为您提供一些提示。
您应该研究一下Maatkit,这是一个用于执行各种 MySQL 任务的开源工具包。如果没有关于您要调整的确切内容的更多信息,很难告诉您将使用哪些工具以及如何使用,但文档非常好,它涵盖了很多应用程序。
我用于其余 sql 调整的工具 ( SQLyog ) 有一个包含分析器的新版本,这太棒了!(我不为他们工作——我只是使用他们的产品)