我试图在从PostgreSQL数据库填充后,在Apache Ignite上运行查询。问题是那个
Suppoe I' 2缓存A和B,分别有8700和10,000个记录。 当我运行查询独立查询
时 SELECT id FROM "pcm".pcm WHERE code=1222;
SELECT id, name FROM "tn".tn WHERE id IN (6838);
此处,第一个查询返回6838
。
这些查询大约需要6毫秒和10毫秒。
但是当我跑步时
SELECT id, name FROM "tn".tn WHERE id IN (SELECT id FROM "pcm".pcm WHERE code=1222);
这需要大约9000毫秒。
有人可以帮我弄清楚为什么这个查询需要花费这么多时间吗? PS:截至目前,我还没有建立任何关于点燃的索引。
答案 0 :(得分:4)
Operator IN不使用索引。您应该用连接替换IN:
答案 1 :(得分:-1)
select id, tn.name
from
pcm.pcm
inner join
tn.tn using (id)
where pcm.code = 1222