प्रदर्शन के मामले में आपकी क्वेरी ठीक दिखती है। क्या आपने इसे यह देखने के लिए मापा है कि क्या वास्तव में कोई समस्या है?
अगर (object1_id, object2_id)
अद्वितीय है तो आप क्वेरी को अधिक संक्षिप्त रूप से इस प्रकार लिख सकते हैं:
SELECT object1_id
FROM composition
WHERE object2_id IN (id1, id2, ..., id6)
GROUP BY object1_id
HAVING COUNT(*) = 6
ध्यान दें कि 6
प्रदान की गई आईडी की संख्या है। यदि अलग-अलग संख्या में आईडी प्रदान की जाती हैं तो इसे बदला जाना चाहिए। आपको यह देखने के लिए अपने डेटा पर वास्तविक प्रदर्शन को मापना होगा कि क्या इससे कोई गति बढ़ती है।
यदि आप विशिष्टता नहीं मान सकते हैं तो यह काम करना चाहिए:
SELECT object1_id
FROM composition
WHERE object2_id IN (id1, id2, ..., id6)
GROUP BY object1_id
HAVING COUNT(DISTINCT object2_id) = 6
हालांकि सबसे महत्वपूर्ण बात यह सुनिश्चित करना है कि आपके पास उपयुक्त अनुक्रमणिका है आपकी मेज पर! यह दूर है इससे अधिक महत्वपूर्ण है कि आप एक प्रश्न लिखें या दूसरा।