Mysql在简单查询运行中崩溃和减速
我在执行sql查询时遇到了一件奇怪的事情Mysql在简单查询运行中崩溃和减速,mysql,sql,Mysql,Sql,我在执行sql查询时遇到了一件奇怪的事情 SELECT * FROM clients WHERE id IN (SELECT DISTINCT clientId FROM quotes WHERE storeEmail LIKE '%something@example.net%') 现在,从storeEmail类似'%的引号中选择不同的clientId的结果something@example.net%“只有很少的项目,比如10-20,但是当我运行上面的查询时,整个p
SELECT *
FROM clients
WHERE id IN
(SELECT DISTINCT clientId
FROM quotes
WHERE storeEmail LIKE '%something@example.net%')
现在,
从storeEmail类似'%的引号中选择不同的clientId的结果something@example.net%“
只有很少的项目,比如10-20,但是当我运行上面的查询时,整个phpmyadmin stuck和数据库开始崩溃。有什么问题吗?尝试使用存在的。根据,对于非常大的子查询,它比
中的更快
SELECT * FROM clients c
WHERE EXISTS (
SELECT * FROM quotes q
WHERE c.id = q.clientId
AND q.storeEmail = 'something@example.net'
)
您还需要在quotes(clientId,storeEmail)
表中总共有多少个条目?该电子邮件地址看起来很完整。当您可以直接使用=
时,为什么要像一样使用?然后可以更快地索引和搜索。好吧,我也尝试过=了,条目可能是20k,但SELECT DISTINCT clientId也有20k条目的条目,它的速度非常快,比如在maxPlease 2-3秒请不要发布真实的电子邮件地址;他们将被垃圾邮件发送者抓取并被垃圾邮件遗忘。你在storeEmail
栏中有索引吗?请在此处发布的结果解释您的\u查询\u
。这可能有效,但您没有说明OP的实际代码不起作用的原因。此外,您正在执行select*from quotes
@prash forEXISTS
选择什么并不重要,请参阅