उस फ़ील्ड को देखते हुए key
दोनों मामलों में अनुक्रमित किया जाता है, जटिलता सूचकांक स्वयं खोज बहुत समान होगा। a
. के मान के रूप में हैशेड
होगा , और इंडेक्स ट्री में संग्रहीत।
यदि हम समग्र प्रदर्शन लागत की तलाश कर रहे हैं, तो हैश किए गए संस्करण पर a
के मान को हैश करने की अतिरिक्त (नगण्य) लागत लगेगी इंडेक्स ट्री में मान से मेल खाने से पहले। यह भी देखें mongo/db/index /hash_access_method.h
साथ ही, हैशेड इंडेक्स इंडेक्स प्रीफिक्स कंप्रेशन ( WiredTiger) . इंडेक्स प्रीफ़िक्स कम्प्रेशन कुछ डेटा सेट के लिए विशेष रूप से प्रभावी होता है, जैसे कि कम कार्डिनैलिटी वाले (जैसे, देश), या दोहराए जाने वाले मान वाले, जैसे फ़ोन नंबर, सामाजिक सुरक्षा कोड और भू-निर्देशांक। यह यौगिक अनुक्रमणिका के लिए विशेष रूप से प्रभावी है , जहां पहले क्षेत्र को दूसरे क्षेत्र के सभी अद्वितीय मूल्यों के साथ दोहराया जाता है।
आम तौर पर गैर-श्रेणी मान हैश करने का कोई कारण नहीं है। शार्द कुंजी चुनने के लिए, cardinality<पर विचार करें /ए> , फ़्रीक्वेंसी , और परिवर्तन की दर मूल्य का।
हैशेड इंडेक्स का इस्तेमाल आमतौर पर sharding के खास केस के लिए किया जाता है . जब एक shard key मान एक है> मान, डेटा का वितरण केवल एक शार्प में जाने की संभावना है। यह वह जगह है जहां एक हैशेड शार्द कुंजी लेखन के वितरण में सुधार करने में सक्षम होगी। अपने शार्डिंग क्लस्टर को बेहतर बनाने के लिए यह एक मामूली समझौता है। ये भी देखें .
चाहे वह इसके लायक हो, उपयोग के मामले पर निर्भर करता है। एक कस्टम हैश मान का मतलब होगा कि हैश मान के लिए किसी भी क्वेरी को कस्टम हैशिंग कोड यानी application.
अंतर्निहित हैश फ़ंक्शन का उपयोग करने का लाभ यह है कि हैश इंडेक्स का उपयोग करके प्रश्नों को हल करते समय MongoDB स्वचालित रूप से हैश की गणना करता है। इसलिए, अनुप्रयोगों को हैश की गणना करने की आवश्यकता नहीं है।