सुनिश्चित नहीं है कि यह सब आंतरिक रूप से कैसे काम करता है, लेकिन स्थिति के आधार पर मैं एक टेबल के साथ खेलने की सलाह दूंगा जो डी 1 से सभी मानों को 'रोल आउट' करता है और फिर उसमें शामिल हो जाता है। इस तरह क्वेरी इंजन खोजे जा रहे मान से मेल खाने वाली सीमाओं के संयोजन को खोजने के बजाय 'बिल्कुल' सही रिकॉर्ड को इंगित कर सकता है।
उदा.
x value
a 1
a 2
a 3
b 5
b 6
b 7
b 8
b 9
b 10
b 11
c 19 etc..
मान कॉलम (**) पर एक इंडेक्स दिया गया है, यह मूल d1 तालिका IMHO पर प्रारंभ और अंत के बीच में शामिल होने से काफी तेज होना चाहिए।
बेशक, हर बार जब आप d1 में बदलाव करते हैं, तो आपको रोल आउट टेबल को भी एडजस्ट करना होगा (ट्रिगर?) यदि ऐसा बार-बार होता है तो आप रोल आउट टेबल को अपडेट करने में पहले स्थान पर प्राप्त की तुलना में अधिक समय व्यतीत करेंगे! इसके अतिरिक्त, यदि कुछ अंतराल वास्तव में बड़े हैं, तो इसमें काफी (डिस्क) स्थान जल्दी लग सकता है; और साथ ही, यह मानता है कि हमें गैर-पूर्ण संख्याओं की तलाश करने की आवश्यकता नहीं है (उदाहरण के लिए यदि हम 3.14 मान की तलाश करते हैं तो क्या होगा?)
(आप यहां (मान, x) पर एक अद्वितीय के साथ प्रयोग करने पर विचार कर सकते हैं...)