我有一個MySQL的查詢性能問題,不知道如何建立它的權利,所以它儘可能少的工作。性能檢查值的存在
問題:
想象一個表有兩列:用戶(INT),項(INT)
在使用者有關聯的不同項。也許用戶1具有項目1,項目2,項目3和用戶2具有項目1,項目3,項目4。
我想知道的是,如果至少有一個其他用戶也有這些項目,則需要知道某個特定用戶-X和每個項目。
我開始與什麼是
SELECT item
FROM table
WHERE item IN (SELECT item FROM table WHERE user = X) AND user != X
GROUP BY item
...但因爲在這種情況下,通過查詢整個表,並檢查每個項目searchs即使這樣,如果每一個已經找到,這是低效的。 我不能限制查詢,因爲我不知道user-X實際上有多少個項目。 並且單獨爲每個項目發送LIMTI 1的搜索查詢也不是一個好主意。
對於抽象,你也可以說我想知道一組item-X,...,item-Y(不是順序或連續編號)是否與至少一個用戶相關聯。
我不在乎物品多久出現一次,只想知道是否至少有一次。
那麼,怎樣才能做到這一點? 感謝您的任何建議!