सबसे अच्छा अभ्यास है हमेशा 3NF से शुरू करें, और उसके बाद केवल विशिष्ट प्रदर्शन समस्या मिलने पर ही denormalistion पर विचार करें।
प्रदर्शन केवल एक है उन मुद्दों के बारे में जिन्हें आपको डेटाबेस से निपटना है। डेटा को डुप्लिकेट करके, आप अपने डेटाबेस में असंगत डेटा की अनुमति देने का जोखिम चलाते हैं, इस प्रकार रिलेशनल डेटाबेस, स्थिरता (C
) के मूल सिद्धांतों में से एक को समाप्त कर देते हैं। ACID
. में ) .
हां, जुड़ने की कीमत होती है, इसके आसपास कोई नहीं है। हालाँकि, लागत आमतौर पर आपके विचार से बहुत कम होती है, और अक्सर नेटवर्क ट्रांसमिशन समय जैसे अन्य कारकों से प्रभावित हो सकती है। यह सुनिश्चित करके कि प्रासंगिक कॉलम ठीक से अनुक्रमित हैं, आप उन बहुत सारी लागतों से बच सकते हैं।
और, अनुकूलन मंत्र याद रखें:मापें, अनुमान न लगाएं! और उत्पादन जैसे वातावरण में मापें। और रखें समय-समय पर मापना (और ट्यूनिंग) करना - ऑप्टिमाइज़ेशन केवल एक सेट और भूल ऑपरेशन है यदि आपका स्कीमा और डेटा कभी नहीं बदलता है (बहुत कम संभावना है)।
स्थिरता बनाए रखने के लिए ट्रिगर्स का उपयोग करके प्रदर्शन के लिए प्रत्यावर्तन को आमतौर पर सुरक्षित बनाया जा सकता है। यह, निश्चित रूप से, आपके अपडेट को धीमा कर देगा, लेकिन फिर भी आपके चयनों को तेज़ी से चलने दे सकता है।