SELECT COUNT(*) AS cnt
FROM products
WHERE ExternalProductId IS NOT NULL
GROUP BY SourceId, ExternalProductId
HAVING cnt > 1
(ExternalProductId, SourceId, AnotherField) 上有一个索引。解释显示使用了索引。这打印在说明的“额外”列中:
Using where; Using index; Using temporary; Using filesort
当我运行查询时,我通过 SHOW PROCESSLIST 看到:
Copying to tmp table on disk
我可以调整这个查询以在索引上工作吗?我也不介意我得到的结果是否因为其他进程同时在此表上工作而稍微不准确 - 我可以更改隔离级别以提高查询的性能吗?