टिप्स:
-
तालिका कैश करें मेटाडेटा . डिफ़ॉल्ट रूप से,
Zend_Db_Table
तालिका के बारे में मेटाडेटा खोजने की कोशिश करता है हर बार जब आपकी तालिका वस्तु त्वरित होती है। ऐसा करने की संख्या को कम करने के लिए कैश का उपयोग करें। या फिर इसे अपने टेबल क्लास में हार्ड-कोड करें (नोट:डीबी टेबल मॉडल नहीं हैं )। -
EXPLAIN
का इस्तेमाल करें MySQL की अनुकूलन योजना का विश्लेषण करने के लिए। क्या यह किसी इंडेक्स का प्रभावी ढंग से उपयोग कर रहा है?mysql> EXPLAIN SELECT * FROM standard_accessory WHERE model = 'abc';
-
BENCHMARK()
का इस्तेमाल करें क्वेरी की गति को मापने के लिए, PHP का उपयोग न करें। सबक्वेरी को एक ही कॉलम वापस करना होगा, इसलिए एक गैर-अनुक्रमित कॉलम को वापस करना सुनिश्चित करें ताकि क्वेरी को केवल एक इंडेक्स एंट्री वापस करने के बजाय डेटा को छूना पड़े।mysql> SELECT BENCHMARK(1000, (SELECT nonindexed_column FROM standard_accessory WHERE model = 'abc'));
-
ध्यान दें कि
Zend_Db_Adapter
जब आप पहली क्वेरी करते हैं तो आलसी अपने डीबी कनेक्शन को लोड करता है। इसलिए यदि MySQL सर्वर से कनेक्ट होने में कोई धीमापन है, तो यह तब होगा जब आप टेबल ऑब्जेक्ट को इंस्टेंट करते हैं (जब यह मेटाडेटा से पूछताछ करता है)। किसी भी कारण से इसमें लंबा समय लग सकता है? DNS लुकअप , शायद?