带有重复子查询的mySQL select联合查询工作缓慢
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了带有重复子查询的mySQL select联合查询工作缓慢相关的知识,希望对你有一定的参考价值。
我有一个简单的表,其中包含以ID,代码(200 000条记录)索引的价格表(价格表的ID-,商品的CODE,商品的PRICE)-最初,我使用“ LEFT JOIN”来完成它,工作缓慢,然后我使它像这样:
SELECT CODE,price FROM PRICELISTS
WHERE ID=1 AND CODE NOT IN (SELECT CODE FROM PRICELISTS WHERE ID=5)
union
SELECT CODE,price FROM PRICELISTS WHERE id=5
IT工作更快,但还不够。有什么方法可以简化代码以使其更快?
答案
请尝试避免使用not in并使用左连接来匹配不匹配的值
SELECT p.CODE, p.price
FROM PRICELISTS p
LEFT JOIN (
SELECT CODE
FROM PRICELISTS
WHERE ID=5
) t1 on t1.code = p.code
where p.id =1
and t1.code is null
union
SELECT CODE,price
FROM PRICELISTS WHERE id=5
以上是关于带有重复子查询的mySQL select联合查询工作缓慢的主要内容,如果未能解决你的问题,请参考以下文章