4

我已经为我的表分配了索引。有什么方法可以确定我的查询的性能吗?谢谢

编辑 解释结果

在这里,我附上了我的测试服务器解释结果。在测试服务器中只有几行,但在实时服务器中,有数百万条记录,执行查询需要 10 到 15 分钟。如果它在这里不可见,我将提供此图像的 url

http://i45.tinypic.com/n6t8cx.jpg

4

2 回答 2

5

以下查询将告诉您查询是否使用索引:

EXPLAIN EXTENDED SELECT col1, col2, col3, COUNT(1) 
FROM table_name 
WHERE col1 = val 
GROUP BY col1 
ORDER BY col2;

SHOW WARNINGS;

您可以添加覆盖索引以获得最佳性能。

对于覆盖索引,您首先添加在 where 子句中使用的列,然后是在 group 中使用的列,然后是在 order by 中使用的列,然后是在 select 中使用的列。

例如对于上述查询,您可以添加覆盖索引KEY(col1, col2, col3)

*注意添加更多索引会减慢您的插入查询。

于 2012-07-20T11:17:59.807 回答
1

也许您可以打开慢查询日志,这可能会提供更多信息。阅读此内容以获取更多信息: http ://dev.mysql.com/doc/refman/5.0/en/slow-query-log.html

于 2012-07-20T23:55:35.780 回答