Mysql崩溃并减慢简单查询运行速度

时间:2014-07-12 04:31:55

标签: mysql sql

我在执行sql查询时遇到了一件奇怪的事情

SELECT *
FROM clients
WHERE id IN
    (SELECT DISTINCT clientId
     FROM quotes
     WHERE storeEmail LIKE '%something@example.net%')

现在SELECT DISTINCT clientId FROM quotes WHERE storeEmail LIKE '%something@example.net%'的结果只有很少的项目,比如10-20,但当我在查询之上运行时,整个phpmyadmin卡住了,数据库开始崩溃。有什么问题?

1 个答案:

答案 0 :(得分:0)

尝试使用EXISTS。根据{{​​3}},对于非常大的子查询,它比IN更快

SELECT * FROM clients c
WHERE EXISTS (
    SELECT * FROM quotes q
    WHERE c.id = q.clientId
    AND q.storeEmail = 'something@example.net'
)

您还需要quotes(clientId,storeEmail)

上的综合索引