मूल रूप से, MySQL में एक चर पंक्ति लंबाई होती है जब तक कि कोई प्रति तालिका स्तर पर नहीं बदलता है। इस प्रकार, खाली कॉल्स किसी भी स्थान (अच्छी तरह से, लगभग) का उपयोग नहीं करेंगे।
लेकिन ब्लॉब्स या टेक्स्ट कॉलम के साथ, उन्हें सामान्य करना बेहतर हो सकता है, क्योंकि इनमें स्टोर करने के लिए बड़ा डेटा हो सकता है और हर बार टेबल स्कैन होने पर इसे पढ़ने/छोड़ने की आवश्यकता होती है। भले ही कॉलम परिणाम सेट में न हो और आप किसी इंडेक्स के बाहर क्वेरी कर रहे हों, फिर भी बड़ी मात्रा में पंक्तियों में समय लगेगा।
एक अच्छे अभ्यास के रूप में मुझे लगता है कि सभी प्रशासनिक और अक्सर उपयोग किए जाने वाले कॉलम को एक टेबल में रखना और बाकी सभी को सामान्य करना तेज़ होगा। आपके दूसरे उदाहरण के रूप में एक प्रकार का "ऊर्ध्वाधर" डिज़ाइन पढ़ने में जटिल होगा और जैसे ही आप अस्थायी तालिकाओं के साथ काम करेंगे, आप जल्दी या बाद में प्रदर्शन समस्याओं में भाग लेंगे।