3个表:项目有7k行,但价格和数据表大小分别约为1GB,每行1000万行。
Item- itemid,itemName
Price- itemid,itemPrice,itemDate(Date)
Data- itemid,itemPrice,itemDate(Date),Some other fields
如何从价格>获得最小(itemid)以及max(itemDate)每个itemid的数据的最大值(itemDate)?
MyApproach(工作但很慢,此查询大约需要2小时)
select min(itemid)
from Price p
where p.itemid in (select itemid from Item)
and p.itemDate > (select max(itemDate) from Data d where d.itemid = p.itemid);
答案 0 :(得分:0)
以下是一个示例,您需要优化查询。您可以使用索引进行进一步优化。
select min(itemid) from Price p join item i using(itemid) where and p.itemDate > (select max(itemDate) from Data d join price using(itemid));
希望这会有所帮助