झूठे के लिए शून्य स्थान
आपकी पसंद जो भी हो, आप NULLइसके बजाय सेट कर सकते हैं 0और यह कोई अतिरिक्त स्थान नहीं लेगा (क्योंकि डेटाबेस में लगभग हमेशा NULLहर पंक्ति के हर क्षेत्र के लिए एक झंडा होता है , बस वहां बैठे; अधिक जानकारी यहाँ )। यदि आप यह भी सुनिश्चित करते हैं कि डिफ़ॉल्ट / सबसे अधिक संभावना है false, तो आप और भी अधिक स्थान बचा लेंगे!
ट्रू के लिए कुछ स्पेस
प्रतिनिधित्व करने के trueलिए फ़ील्ड प्रकार द्वारा परिभाषित स्थान की आवश्यकता होती है; का उपयोग करते हुए BITकेवल अंतरिक्ष की बचत होगी अगर एक मेज कई ऐसे स्तंभ हैं, क्योंकि यह 8 क्षेत्रों प्रति एक बाइट का उपयोग करता है (बनाम TINYINTजो क्षेत्र प्रति एक बाइट का उपयोग करता है)।
TINYINTअतिरिक्त स्तंभों के एक समूह के प्रबंधन के बारे में चिंता किए बिना आपको 8-मूल्य के बिटमास्क को अनुकूलित करने की अनुमति देने का लाभ है , और खोज सैद्धांतिक रूप से तेज है (एक एकल पूर्णांक फ़ील्ड बनाम कई बिट फ़ील्ड)। लेकिन कुछ नुकसान भी हैं जैसे कि धीमी गति से ऑर्डर करना, फैंसी क्रॉस-इंडेक्सिंग सामान, और फील्ड नामों की कमी। जो मेरे लिए, सबसे बड़ा नुकसान है; आपके डेटाबेस को यह नोट करने के लिए बाहरी दस्तावेज़ीकरण की आवश्यकता होगी कि कौन से बिट्स ने बिटमास्क में क्या किया।
किसी भी मामले में, TEXTबूलियन या उनमें से सेट को स्टोर करने के लिए खेतों का उपयोग करने के प्रलोभन से बचें । पाठ के माध्यम से खोज करना सर्वर के लिए बहुत अधिक काम है, और "चालू, बंद, बंद" जैसी मनमाने ढंग से नामकरण योजनाएं अंतर-अस्थिरता को चोट पहुंचा सकती हैं।