Mysql
 sql >> डेटाबेस >  >> RDS >> Mysql

बी-ट्री बनाम हैश टेबल

आप हैशटेबल में तत्वों को उनकी प्राथमिक कुंजी के द्वारा ही एक्सेस कर सकते हैं। यह ट्री एल्गोरिथम (O(1) से तेज है। के बजाय log(n) ), लेकिन आप श्रेणियों का चयन नहीं कर सकते (x . के बीच सब कुछ और y )। ट्री एल्गोरिदम Log(n) . में इसका समर्थन करते हैं जबकि हैश इंडेक्स के परिणामस्वरूप एक पूर्ण तालिका स्कैन हो सकता है O(n) .साथ ही हैश इंडेक्स का निरंतर ओवरहेड आमतौर पर बड़ा होता है (जो थीटा नोटेशन में कोई कारक नहीं है, लेकिन यह अभी भी मौजूद है )। इसके अलावा ट्री एल्गोरिदम आमतौर पर बनाए रखना आसान होता है, डेटा, स्केल आदि के साथ बढ़ता है।

हैश इंडेक्स पूर्व-निर्धारित हैश आकारों के साथ काम करते हैं, इसलिए आप कुछ "बाल्टी" के साथ समाप्त होते हैं जहां ऑब्जेक्ट संग्रहीत होते हैं। इस विभाजन के अंदर वास्तव में सही खोजने के लिए इन ऑब्जेक्ट्स को फिर से लूप किया जाता है।

इसलिए यदि आपके पास छोटे आकार हैं तो आपके पास छोटे तत्वों के लिए बहुत अधिक ओवरहेड है, बड़े आकार के परिणामस्वरूप आगे स्कैनिंग होती है।

आज के हैश टेबल एल्गोरिदम आमतौर पर बड़े होते हैं, लेकिन स्केलिंग अक्षम हो सकती है।

हालाँकि एक बिंदु ऐसा भी हो सकता है जहाँ आपका सूचकांक आपके हैश आकार की तुलना में एक सहनीय आकार से अधिक हो और आपकी संपूर्ण अनुक्रमणिका को फिर से बनाने की आवश्यकता हो। आमतौर पर यह कोई समस्या नहीं है, लेकिन विशाल-विशाल-विशाल डेटाबेस के लिए, इसमें कुछ दिन लग सकते हैं।

पेड़ एल्गोरिदम के लिए व्यापार बंद छोटा है और वे लगभग हर उपयोग के मामले के लिए उपयुक्त हैं और इस प्रकार डिफ़ॉल्ट हैं।

हालाँकि, यदि आपके पास एक बहुत ही सटीक उपयोग का मामला है और आप जानते हैं कि वास्तव में क्या और केवल क्या आवश्यक है, तो आप हैशिंग इंडेक्स का लाभ उठा सकते हैं।



  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. अज्ञात प्रारंभिक वर्ण सेट अनुक्रमणिका '255' सर्वर से प्राप्त हुआ

  2. 'तारीख' एक वैध mysql कॉलम नाम है?

  3. कॉलम और योग की संख्या में MySQL पंक्ति

  4. रिवर्स इंजीनियर MySQL और PostgreSQL डीबी के लिए आवेदन?

  5. MySQL रेगेक्स में यूनिकोड?