यहाँ एक सामान्य क्वेरी पर mysql व्याख्या कमांड का स्क्रीनशॉट दिया गया है: http://cl.ly/3r34251M320A1P2s3e1Y
मेरे पास 3 अलग-अलग टेबल हैं, मुझे जो डेटा चाहिए उसे निकालने के लिए एक साथ जुड़ना होगा। यह एक्टिवरकॉर्ड का उपयोग करने वाला मुख्य CI मॉडल कोड है
$this->db->select("articles.id, articles.title, articles.link, articles.updated_time, articles.created_time, shows.network,shows.show_id, shows.name");
$this->db->from("articles")->order_by("updated_time","desc")->offset($offset)->limit($limit);
$this->db->join("labels", "articles.remote_id = labels.articleid");
$this->db->join("shows", "shows.show_id = labels.showid");
क्या स्कीमा या क्वेरी प्रदर्शन को बेहतर बनाने के लिए कोई सुझाव दे सकता है?
धन्यवाद
उत्तर:
जवाब के लिए 0 № 1क्या आपके क्वेरी धीमी बनाता है के mysql उपयोग हैअस्थायी तालिकाओं और फाइलोर्ट जिसका अर्थ है कि यह "कुशलता से सूचकांक का उपयोग नहीं कर सकता है और एक अस्थायी तालिका बनाता है (डिस्क पर कई बार!)। यह आमतौर पर तब होता है जब आप एक इंडेक्स का उपयोग करके किसी तालिका में शामिल होते हैं और इसे दूसरे सूचकांक द्वारा क्रमबद्ध करते हैं या किसी अन्य सूचकांक पर एक शर्त का उपयोग करते हैं। पहली बात यह है कि आप इस मुद्दे के बारे में पढ़ सकते हैं और देखें कि क्या आप कम से कम, अस्थायी डिस्क तालिकाओं के उपयोग से बच सकते हैं। कैसे mysql अस्थायी तालिकाओं का उपयोग करता है