1

在使用 Microsoft SQL Server 时,我发现 SQL Server Profiler 和 Estimated Execution Plan(在 Management Studio 中可用)在开发和生产系统监控期间优化查询非常有用。

是否有可用于 MySQL 的类似工具(开源或商业)或技术?

4

3 回答 3

3

您可以使用 获取有关如何执行查询的信息EXPLAIN

例如:

EXPLAIN SELECT * FROM foo INNER JOIN bar WHERE foo.index = 1 AND bar.foo_id = foo.id

然后它会告诉您将使用哪些索引,表将按什么顺序连接,它希望从每个表中选择多少行等等。

于 2008-12-03T08:43:09.590 回答
3

正如 RoBorg 建议的那样,您可以使用 EXPLAIN 来显示 MySQL 将如何执行您的查询的详细信息。我发现这篇文章更有用,因为它告诉您如何解释结果并改进您的 SQL。

这些关于查询缓存配置使用 ALTER TABLE添加和删除索引的文章也很有帮助。

于 2008-12-18T00:19:01.130 回答
2

您也可以查看http://dev.mysql.com/doc/refman/5.5/en/server-status-variables.html#statvar_Last_query_cost。这将有助于了解查询是否更好,就 CPU 周期或表扫描而言。

SHOW STATUS LIKE 'Last_query_cost';
于 2014-09-18T14:44:15.747 回答