स्ट्रिंग तुलना बनाम गैर-फ़्लोट्स के वास्तविक प्रदर्शन के लिए टूटना, इस मामले में किसी भी आकार के बिना हस्ताक्षर किए और कोई फर्क नहीं पड़ता। आकार वास्तव में प्रदर्शन में सही अंतर है। यह 1byte + (126bytes तक) बनाम 1,2,4 या 8 बाइट तुलना करें ... जाहिर है कि गैर-फ्लोट स्ट्रिंग्स और फ्लोट्स की तुलना में छोटे होते हैं, और इस प्रकार विधानसभा में अधिक सीपीयू अनुकूल होते हैं।
सभी भाषाओं में स्ट्रिंग की तुलना स्ट्रिंग से कुछ धीमी है, जिसकी तुलना सीपीयू द्वारा 1 निर्देश में की जा सकती है। यहां तक कि एक 32 बिट सीपीयू पर 8 बाइट (64 बिट) की तुलना करना अभी भी एक वराहार (2) या उससे बड़ा है। * फिर से, उत्पादित असेंबली (यहां तक कि हाथ से देखें) में चार से बाइट सीपीयू संख्यात्मक द्वारा चार की तुलना में अधिक निर्देश लगते हैं।
अब, कितना तेज? डेटा की मात्रा पर भी निर्भर करता है। यदि आप बस 5 की तुलना 'ऑडी' से कर रहे हैं - और वह सब आपके डीबी के पास है, तो परिणामी अंतर इतना न्यूनतम है कि आप इसे कभी नहीं देख पाएंगे। सीपीयू, कार्यान्वयन (क्लाइंट / सर्वर, वेब / स्क्रिप्ट, आदि) के आधार पर आप शायद इसे तब तक नहीं देखेंगे जब तक कि आप डीबी सर्वर पर कुछ सौ तुलनाओं को हिट नहीं करते हैं (शायद यह ध्यान देने योग्य होने से पहले कुछ हजार तुलना भी करता है)।
- हैश तुलनाओं के बारे में गलत विवाद को शून्य करना। अधिकांश हैशिंग एल्गोरिदम स्वयं धीमे होते हैं, इसलिए आपको CRC64 और छोटे जैसी चीजों से लाभ नहीं होता है। 12 से अधिक वर्षों के लिए मैंने मल्टी-काउंटी खोज इंजन के लिए खोज एल्गोरिदम और क्रेडिट ब्यूरो के लिए 7 साल विकसित किए। कुछ भी आप तेजी से संख्यात्मक में रख सकते हैं ... उदाहरण के लिए फोन नंबर, ज़िप कोड, यहां तक कि मुद्रा * 1000 (भंडारण) मुद्रा div 1000 (पुनर्प्राप्ति) तुलनाओं के लिए DECIMAL से तेज है।
Ozz