【发布时间】:2010-03-09 13:04:09
【问题描述】:
我正在查询这样的数据库:
SELECT * from Log WHERE cookieId IN (select cookieId from Log WHERE someId="blafasel");
我在 someId 和 cookieId 上有键,但查询速度很慢。 如果我运行两个查询(外部和内部)将它们分开或非常快。
select cookieId from Log WHERE someId="blafasel"
让我几乎立即得到结果。查询也是如此
SELECT * FROM Log WHERE cookieId IN ("something","somethingelse","athirdoption")
使用 EXPLAIN 告诉我在两个单一查询中使用了键,但对于子选择查询键仅用于内部选择。我的问题是为什么?以及如何告诉 MySQL 更聪明一点。
好吧,我可以让我的应用程序分开运行两个查询,但这并不方便。
感谢您的帮助。
【问题讨论】:
标签: mysql performance key subquery