MySQL में दृश्यों को अनुक्रमित नहीं किया जाता है, इसलिए उनके स्वभाव से उन्हें हर बार एक्सेस करने पर एक पूर्ण स्कैन की आवश्यकता होती है। आम तौर पर यह दृश्यों को वास्तव में केवल उन स्थितियों के लिए उपयोगी बनाता है जहां आपके पास काफी जटिल स्थिर क्वेरी है जो एक छोटा परिणाम सेट लौटाती है और आप हर बार पूरे परिणाम सेट को हथियाने की योजना बनाते हैं।
संपादित करें: बेशक दृश्य अंतर्निहित तालिकाओं पर अनुक्रमणिका का उपयोग करेंगे ताकि दृश्य स्वयं अनुकूलित हो (अन्यथा उनका उपयोग करने का कोई मतलब नहीं होगा) लेकिन क्योंकि दृश्य पर कोई अनुक्रमणिका नहीं है, यह WHERE क्वेरी के लिए संभव नहीं है दृश्य अनुकूलित किया जाना है।
दृश्यों के लिए अनुक्रमणिका बनाना वैसे भी महंगा होगा क्योंकि जब मैंने किसी भी दृश्य को प्रोफाइल करने की कोशिश नहीं की है, तो मुझे पूरा यकीन है कि दृश्यों के पीछे एक अस्थायी तालिका बनाई गई है और फिर परिणाम सेट वापस आ गया है। अस्थायी तालिका बनाने में पहले से ही काफी समय लगता है, मैं ऐसा दृश्य नहीं चाहता जो यह अनुमान लगाने की कोशिश करे कि कौन सी अनुक्रमणिका की आवश्यकता है। जो दूसरा बिंदु लाता है जो यह है कि MySQL वर्तमान में यह निर्दिष्ट करने के लिए एक विधि प्रदान नहीं करता है कि किसी दृश्य के लिए कौन से अनुक्रमणिका का उपयोग करना है, तो यह कैसे पता चलता है कि किन क्षेत्रों को अनुक्रमित करने की आवश्यकता है? क्या यह आपकी क्वेरी के आधार पर अनुमान लगाता है?
आप अस्थायी तालिका का उपयोग करने पर विचार कर सकते हैं क्योंकि तब आप अस्थायी तालिका में फ़ील्ड पर अनुक्रमणिका निर्दिष्ट कर सकते हैं। हालांकि, अनुभव से यह वास्तव में वास्तव में धीमा हो जाता है।
यदि इस सभी दृश्य में तालिका 1, तालिका 2, तालिका 3 से सभी का चयन करें; तो मुझे यह पूछना होगा कि इस प्रश्न को एक दृश्य में क्यों होना चाहिए? अगर किसी कारण से यह बिल्कुल जरूरी है, तो आप क्वेरी को समाहित करने के लिए संग्रहीत प्रक्रिया का उपयोग करना चाहेंगे क्योंकि परिणाम सेट के लिए डेटाबेस में एक सरल कॉल के लाभ को बनाए रखते हुए आप अनुकूलित प्रदर्शन प्राप्त करने में सक्षम होंगे।