2010-11-29 12 views
5

docs की खोज की, लेकिन इसका कोई फायदा नहीं हुआ।
गणना मूल्य के लिए अधिकतम लंबाई क्या है, यानी स्ट्रिंग अक्षरशः?ईएनएन मूल्य के लिए अधिकतम लंबाई क्या है?

+1

सामान्यीकरण (एक अलग तालिका और एक विदेशी कुंजी संबंध) का उपयोग करें, और आपको चिंता करने की ज़रूरत नहीं है। –

उत्तर

6

सीमा शाब्दिक स्ट्रिंग की लंबाई पर नहीं बल्कि तालिका परिभाषा पर है।

MySQL documentation कहा गया है कि

हर तालिका कि तालिका परिभाषा में शामिल है एक .frm फ़ाइल है। सर्वर 64KB की ऊपरी सीमा के विरुद्ध फ़ाइल में संग्रहीत तालिका तालिका में से कुछ को जांचने के लिए निम्न अभिव्यक्ति का उपयोग करता है।

जो तब एक तदर्थ समीकरण एक मेज परिभाषा के अनुमानित आकार व्यक्त की जाती है।

एक साधारण परीक्षण के लिए, पहले से ही एक जोड़े क्षेत्रों के साथ एक तालिका में, मैं अपने enum ऊपर 63136 वर्णों से लंबा हो गया, और .frm 71,775 बाइट्स (70KB तुलना में थोड़ा बड़ा) बड़ा था, इसलिए सीमा अनुमानित है। उस बिंदु पर, MySQL ने #1117 - Too many columns शिकायत की, जो कम से कम कहने के लिए भ्रामक है।

दिलचस्प/विचित्र/सार्थक ध्यान देने योग्य, enum का चरित्र सेट अधिकतम लंबाई बदल जाएगा। - भले ही आप सामान्य वर्णों का उपयोग कर रहे हों, जिन्हें केवल 1 बाइट की आवश्यकता होनी चाहिए।

3

एक ईएनएम कॉलम में अधिकतम 65,535 विशिष्ट तत्व हो सकते हैं। (व्यावहारिक सीमा 3000 से कम है।) किसी तालिका में समूह के रूप में माना जाने वाला ईएनएन और एसईटी कॉलम के बीच 255 से अधिक अद्वितीय तत्व सूची परिभाषाएं नहीं हो सकती हैं।

संबंधित मुद्दे