से बचने के लिए MySQL क्वेरी को अनुकूलित करें I MySQL का उपयोग करके मेरी साइट के लिए एक कस्टम फ़ोरम बनाया गया है। लिस्टिंग पृष्ठ अनिवार्य रूप से निम्न स्तंभों वाला एक तालिका है: विषय, अंतिम अपडेट, और # उत्तर।"जहां का उपयोग करना; अस्थायी का उपयोग करना; फाइलों का उपयोग करना"
डीबी तालिका निम्न स्तंभ हैं:
id
name
body
date
topic_id
email
एक विषय "0" के topic_id है, और उत्तरों अपने माता पिता के विषय की topic_id है।
SELECT SQL_CALC_FOUND_ROWS
t.id, t.name, MAX(COALESCE(r.date, t.date)) AS date, COUNT(r.id) AS replies
FROM
wp_pod_tbl_forum t
LEFT OUTER JOIN
wp_pod_tbl_forum r ON (r.topic_id = t.id)
WHERE
t.topic_id = 0
GROUP BY
t.id
ORDER BY
date DESC LIMIT 0,20;
इस तालिका में लगभग 2,100 कुल आइटम हैं, और प्रश्न आमतौर पर 6 सेकंड तक लेते हैं। मैंने "topic_id" कॉलम में एक INDEX जोड़ा, लेकिन इससे ज्यादा मदद नहीं मिली। महत्वपूर्ण पुनर्गठन करने के लिए इस प्रश्न को तेज करने के कोई तरीके हैं?
संपादित करें: अभी तक काफी काम नहीं कर रहा है। मुझे ठीक से काम करने के लिए नीचे दिए गए उदाहरण नहीं मिल रहे हैं।
फ़ील्ड सूची में कॉलम 'डेट' संदिग्ध है ..? – Matt
@ मैट: अद्यतन – Quassnoi
@Quassnoi देखें - क्या आप समझा सकते हैं कि क्या हो रहा है? क्या "यूनियन ऑल" को "date_reply" को "date" के साथ बदल दिया गया है यदि विषय का कोई जवाब नहीं है? – Matt