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