आपको GROUP BY
. से छुटकारा पाना होगा यहाँ।
MySQL
इसे अनुकूलित करने में अच्छा नहीं है।
अपनी क्वेरी को इस तरह दोबारा लिखें:
SELECT *
FROM product_table
WHERE EXISTS
(
SELECT NULL
FROM product_table__category_1__mm mm_1
JOIN category cat_1
ON cat_1.uid = mm_1.uid_foreign
WHERE mm_1.uid_local = product_table.uid
AND mm_1.uid_foreign IN (7, 8)
)
AND
…
इंडेक्स बनाएं:
product_table__category_*__mm (uid_local, uid_foreign)
या, बेहतर है, उन्हें PRIMARY KEYs
घोषित करें product_table__category_*__mm
. पर :
ALTER TABLE product_table__category_*__mm ADD CONSTRAINT pk_pc*mm_local_foreign (uid_local, uid_foreign)