使用Microsoft SQL Server我发现非常有用的SQL Server Profiler和预计执行计划(可在Management Studio中获得)在开发和生产系统监视期间优化查询。MySQL SQL查询分析和查询成本工具和技术
是否有类似的工具(开源或商业)或技术可用于MySQL?
使用Microsoft SQL Server我发现非常有用的SQL Server Profiler和预计执行计划(可在Management Studio中获得)在开发和生产系统监视期间优化查询。MySQL SQL查询分析和查询成本工具和技术
是否有类似的工具(开源或商业)或技术可用于MySQL?
您可以使用EXPLAIN
获取有关如何执行查询的信息。
例如:
EXPLAIN SELECT * FROM foo INNER JOIN bar WHERE foo.index = 1 AND bar.foo_id = foo.id
然后它会告诉你哪些索引将被使用,什么样的顺序表将被加入进来,预计多少行从每个表等进行选择。
正如RoBorg所说,您可以使用EXPLAIN来显示MySQL将如何执行您的查询的详细信息。我发现this article更有用,因为它告诉你如何解释结果并改进你的SQL。
这些文章query cache configuration和using ALTER TABLE也有帮助添加和删除索引。
你也可以看看http://dev.mysql.com/doc/refman/5.5/en/server-status-variables.html#statvar_Last_query_cost。这将有助于根据CPU周期或表扫描来了解查询是否更好。
SHOW STATUS LIKE 'Last_query_cost';