आप सभी फ़िल्टरिंग कार्य को एक सबक्वेरी में ले जाकर MySQL ऑप्टिमाइज़र की मदद कर सकते हैं जो केवल इंडेक्स तक पहुंचता है (इंडेक्स में हेरफेर करना आमतौर पर अन्य डेटा में हेरफेर करने की तुलना में बहुत तेज़ होता है), और बाकी डेटा को सबसे बाहरी क्वेरी में लाकर:
SELECT posts.post_id,
posts.post_b_id,
posts.post_title,
posts.post_cont,
posts.thumb,
posts.post_user,
boards.board_title_l,
boards.board_title
FROM (SELECT post_id
FROM posts
JOIN follow
ON posts.post_b_id = follow.board_id
WHERE follow.user_id = 1
ORDER BY post_id DESC
LIMIT 10) sq
JOIN posts
ON posts.post_id = sq.post_id
JOIN boards
ON boards.board_id = posts.post_b_id
ध्यान दें कि मैं ORDER BY posts.post_id DESC
को छोड़ देता हूं बाहरी क्वेरी से, क्योंकि आमतौर पर MySQL क्वेरी का उपयोग करके सॉर्ट करने के बजाय आपके कोड में अंतिम परिणाम को सॉर्ट करना तेज़ होता है (MySQL अक्सर filesort का उपयोग करता है) उसके लिए)।
पी.एस. आप follow
. में अद्वितीय कुंजी को बदल सकते हैं प्राथमिक कुंजी के साथ तालिका।