我在postgresql中有兩個表:ITEM(ID,TYPE)和ITEM_DATA(TS,ITEM_ID),關係爲1:n。第一張桌子很小,第二張桌子很大。我想知道從ITEM表中選擇每一行的ITEM_DATA表的最小值和最大值的最佳方法。在這一刻我有這樣的選擇,但它的速度太慢:如何從另一個表中選擇MIN和MAX
SELECT
I.*,
(SELECT MIN(ID.TS) FROM ITEM_DATA ID WHERE ID.ITEM_ID=I.ID) AS MIN_TS,
(SELECT MAX(ID.TS) FROM ITEM_DATA ID WHERE ID.ITEM_ID=I.ID) AS MAX_TS
FROM ITEM I
WHERE I.TYPE = 'X';
有一個在表的主鍵ITEM_DATA它有兩個部分:TS和ITEM_ID而且還對其中有一個表項的索引段:TYPE。
有沒有辦法讓這個查詢更快?
ITEM表中有多少行,在那裏,有多少行的ITEM_DATA表中受益? ITEM_DATA還有很多其他列嗎? –
ITEM有數百個,ITEM_DATA有數百萬個 – miloxe