我正在查询这样的数据库:
SELECT * from Log WHERE cookieId IN (select cookieId from Log WHERE someId="blafasel");
Run Code Online (Sandbox Code Playgroud)
我在someId和cookieId上有键,但查询速度很慢.如果我运行两个查询(外部和内部)将它们分开或非常快.
select cookieId from Log WHERE someId="blafasel"
Run Code Online (Sandbox Code Playgroud)
几乎立即得到了我的结果.查询也是如此
SELECT * FROM Log WHERE cookieId IN ("something","somethingelse","athirdoption")
Run Code Online (Sandbox Code Playgroud)
使用EXPLAIN告诉我在两个单个查询中使用了键,但是对于subselect查询键仅用于内部选择.我的问题是为什么?以及如何告诉MySQL更聪明一点.
好吧,我可以让我的应用程序分开运行两个查询,但这不方便.
谢谢你的帮助.