基本的MySQL SELECT查询运行速度非常慢

时间:2011-12-21 22:58:32

标签: mysql performance

我已经通过ODBC将MySQL视图链接到MS Access,但它的运行速度很慢。

这是一个简单的选择,它比较另外两个选项以查找第一个选择所独有的记录。

SELECT `contacts_onlinedonors`.`contactkey` AS `contactkey`
FROM   (`hal9k3-testbed`.`contacts_onlinedonors`
    LEFT JOIN `hal9k3-testbed`.`contacts_offlinedonors`
      ON(( `contacts_onlinedonors`.`contactkey` =
         `contacts_offlinedonors`.`contactkey` )))
WHERE  Isnull(`contacts_offlinedonors`.`contactkey`)  

慢查询日志说它在检查了15亿后返回34,000行。基表中只有200,000个。到底是什么?

字段" contactkey"显然是桌上的一个索引。

1 个答案:

答案 0 :(得分:2)

首先要做的是“解释”这个查询。 见http://dev.mysql.com/doc/refman/5.0/en/explain.html

这个想法是弄清楚mysql服务器在做什么,它正在使用哪些索引,在需要的地方添加索引,或者重写你的查询以便它可以使用索引。