पहले कुछ और ज्वलंत, फिर एक वास्तविक समाधान ...
मैं ज्यादातर आप पर पहले से ही लपटों से सहमत हूँ।
मैं कुंजी-मूल्य सामान्यीकरण से असहमत हूं। प्रश्न भयानक होते हुए समाप्त होते हैं; प्रदर्शन और भी खराब।
तात्कालिक समस्या (स्तंभों की संख्या की सीमा) से बचने का एक 'सरल' तरीका डेटा को 'लंबवत विभाजन' करना है। कहते हैं, प्रत्येक 400 स्तंभों के साथ 5 तालिकाओं। वे सभी एक ही प्राथमिक कुंजी है, एक को छोड़कर यह AUTO_INCREMENT हो सकता है।
शायद बेहतर होगा कि उन दर्जनों क्षेत्रों पर फैसला किया जाए जो सबसे महत्वपूर्ण हैं, उन्हें 'मुख्य' तालिका में डालें। फिर सेंसर को कुछ तार्किक तरीके से समूहित करें और उन्हें कई समानांतर तालिकाओं में डालें। समुचित समूहीकरण के साथ, आपको हर समय सभी तालिकाओं को शामिल नहीं करना पड़ सकता है।
क्या आप किसी भी मूल्य को अनुक्रमित कर रहे हैं? क्या आपको उन पर खोज करने की आवश्यकता है? शायद आप डेटाइम पर खोजते हैं?
यदि आपको बहुत सारे स्तंभों को अनुक्रमित करने की आवश्यकता है - पंट।
यदि आपको कुछ अनुक्रमित करने की आवश्यकता है - उन्हें 'मुख्य तालिका में डालें।
यहां जानिए असली उपाय (अगर यह लागू होता है) ...
यदि आपको अनुक्रमित सेंसर के विशाल सरणी की आवश्यकता नहीं है, तो कॉलम न बनाएं! हां, आपने मुझे सुना। इसके बजाय, उन्हें JSON में इकट्ठा करें, JSON को संपीड़ित करें, इसे BLOB फ़ील्ड में संग्रहीत करें। आप एक टन स्थान बचाएंगे; आपके पास केवल एक तालिका होगी, जिसमें स्तंभ सीमा समस्याएं नहीं होंगी; आदि। आपका आवेदन अनसुना कर देगा, और फिर एक संरचना के रूप में JSON का उपयोग करेगा। अंदाज़ा लगाओ? आपके पास संरचना हो सकती है - आप सेंसर को सरणियों, बहुस्तरीय सामान, आदि में समूह कर सकते हैं, जैसे आपका ऐप पसंद करेगा। एक और 'फीचर' - यह ओपन-एंडेड है। यदि आप अधिक सेंसर जोड़ते हैं, तो आपको तालिका को बदलने की आवश्यकता नहीं है। JSON अगर इस तरह से लचीला है।
(संपीड़न वैकल्पिक है, यदि आपका डेटासेट विशाल है, तो यह डिस्क स्थान के साथ मदद करेगा, इसलिए समग्र प्रदर्शन।)