Btree और rtree अनुक्रमण के बीच अंतर क्या है?


36

मैंने MySQLWorkbench पर ध्यान दिया है कि आप यह चुन सकते हैं कि अपने डिजाइन को आगे बढ़ाने से पहले आप अपने इंडेक्स को कैसे स्टोर करें। भंडारण प्रकार हैं:

  1. BTREE
  2. RTREE
  3. HASH

इस पर शोध करते हुए, मुझे कुछ जानकारी मिली जो मेरे सिर पर बहुत अधिक थी, इसलिए मैं व्यावहारिक जानकारी की तलाश कर रहा हूं कि इन और / या आप के बीच क्या अंतर है और आपको एक का चयन क्यों करना चाहिए।

इसके अलावा, मैंने पहले कभी भंडारण प्रकार नहीं चुना है, इसलिए मुझे लगता है कि MySQL एक डिफ़ॉल्ट भंडारण प्रकार (BTREE?) का चयन कर रहा है।

जवाबों:


51

BTREE

BTree (वास्तव में B * ट्री) एक कुशल ऑर्डर किया गया कुंजी-मूल्य मानचित्र है। अर्थ:

  • कुंजी को देखते हुए, एक बीट्री इंडेक्स जल्दी से एक रिकॉर्ड पा सकता है,
  • बीट्री को क्रम में स्कैन किया जा सकता है।
  • एक सीमा के भीतर सभी कुंजी (और रिकॉर्ड) प्राप्त करना भी आसान है।

उदाहरण के लिए "सुबह 9 बजे से शाम 5 बजे के बीच सभी कार्यक्रम", "आर" के साथ शुरू होने वाले अंतिम नाम

RTree

आरट्री एक ऐसा spatial indexअर्थ है कि यह close2 या अधिक आयामों में मूल्यों की शीघ्रता से पहचान कर सकता है । इसका उपयोग भौगोलिक डेटाबेस में प्रश्नों के लिए किया जाता है जैसे:

X (x, y) से सभी बिंदुओं के भीतर मीटर

हैश

हैश एक अनियंत्रित की-वैल्यू मैप है। यह ब्रीटी की तुलना में अधिक कुशल है: O(1)इसके बजाय O(log n)

लेकिन इसके पास ऑर्डर की कोई अवधारणा नहीं है, इसलिए इसका उपयोग सॉर्ट ऑपरेशंस के लिए या श्रेणियों को लाने के लिए नहीं किया जा सकता है।

साइड नोट के रूप में, मूल रूप से, MySQL ने MEMORYतालिकाओं पर केवल हैश इंडेक्स की अनुमति दी थी ; लेकिन मुझे यकीन नहीं है कि अगर यह वर्षों में बदल गया है।


क्या MySQL Rtrees का समर्थन करता है?
पचेरियर

2
हां, उन्हें SPATIAL INDEX ( dev.mysql.com/doc/refman/5.0/en/spatial-extensions.html ) कहा जाता है
जेवियर

कूल, धन्यवाद =) क्या निकट भविष्य में इन 3, या नियोजित संरचनाओं के अलावा अन्य संरचनाएं हैं?
पैसिफायर

मेमोरी टेबल btree इंडेक्स के साथ
Amareswar

@ अमरेश्वर, सही। हो सकता है कि मेरे उत्तर को दोनों तरह से पढ़ा जा सकता है, लेकिन मेरा क्या मतलब था कि एचएएसएच इंडेक्स केवल मेमरी टेबल पर ही दिए गए थे, न कि 'सामान्य' टेबल पर।
जेवियर
हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.