TL; DR:स्ट्रिंग्स संभवतः सुरक्षित हैं पसंद, और प्रदर्शन अंतर नगण्य होना चाहिए। पूर्णांक विशाल संग्रह के लिए समझ में आता है जहां एनम को अनुक्रमित किया जाना चाहिए। वाईएमएमवी.
सच।
मेरी राय में यह पूर्णांकों का एक प्रमुख लाभ है। हालाँकि, इसके लिए आपको यह भी सुनिश्चित करना होगा कि enum
. के संबद्ध मान मत बदलो। यदि आप इसे खराब कर देते हैं, तो आप लगभग निश्चित रूप से कहर बरपा देंगे , जो एक बहुत बड़ा नुकसान है।
यदि आप वास्तव में एक एनम डेटा प्रकार का उपयोग कर रहे हैं, तो यह संभवतः आंतरिक रूप से किसी प्रकार का पूर्णांक है, इसलिए पूर्णांक को कम प्रसंस्करण की आवश्यकता होनी चाहिए। किसी भी तरह, वह ओवरहेड नगण्य होना चाहिए।
जो कुछ कहा गया है, मैं उसे दोहरा रहा हूं, लेकिन हो सकता है कि इससे अन्य पाठकों को मदद मिले। संक्षेप में:
- एनम वैल्यू मैप को मिलाना कहर बरपाता है। अपने
Declined
की कल्पना करें राज्यों को अचानकAccepted
के रूप में व्याख्यायित किया जाता है , क्योंकिDeclined
मान '2' था और अब यहAccepted
है क्योंकि आपने एनम को फिर से व्यवस्थित किया और मैन्युअल रूप से मान निर्दिष्ट करना भूल गए... (sudders ) - स्ट्रिंग अधिक अभिव्यंजक हैं
- पूर्णांक कम जगह लेते हैं। आमतौर पर डिस्क स्थान कोई मायने नहीं रखता, लेकिन अनुक्रमणिका स्थान RAM को खा जाएगा जो कि महंगा है।
- पूर्णांक अद्यतन वस्तु का आकार नहीं बदलते हैं। स्ट्रिंग्स, यदि उनकी लंबाई बहुत भिन्न होती है, तो उन्हें पुन:आवंटन की आवश्यकता हो सकती है। हालांकि, स्ट्रिंग पैडिंग और पैडिंग कारक को इसे कम करना चाहिए।
- पूर्णांक फ़्लैग हो सकते हैं (अभी तक क्वेरी करने योग्य नहीं (अभी तक), दुर्भाग्य से, देखें SERVER-3518 )
- इंटीजर को
$gt
. द्वारा क्वेरी किया जा सकता है /$lt
ताकि आप जटिल$or
. को कुशलतापूर्वक कार्यान्वित कर सकें प्रश्न, हालांकि यह एक रहस्यमय आवश्यकता है और इसमें कुछ भी गलत नहीं है$or
प्रश्न...