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

SQL में अंतराल श्रेणियों में कुशलता से शामिल होना

सुनिश्चित नहीं है कि यह सब आंतरिक रूप से कैसे काम करता है, लेकिन स्थिति के आधार पर मैं एक टेबल के साथ खेलने की सलाह दूंगा जो डी 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) पर एक अद्वितीय के साथ प्रयोग करने पर विचार कर सकते हैं...)




  1. Database
  2.   
  3. Mysql
  4.   
  5. Oracle
  6.   
  7. Sqlserver
  8.   
  9. PostgreSQL
  10.   
  11. Access
  12.   
  13. SQLite
  14.   
  15. MariaDB
  1. जावा टूल के लिए LINQ

  2. एक ऑटो-इंक्रीमेंटिंग आईडी कॉलम के साथ एक MySQL व्यू बनाना

  3. निष्पादन अद्यतन पर HQL अधूरा 'क्रॉस जॉइन' उत्पन्न कर रहा है

  4. क्या मुझे क्लाइंट पर एक स्ट्रिंग के रूप में ग्राफ़क्यूएल आईडी को संभालना चाहिए?

  5. पीडीओ के साथ, मैं कैसे सुनिश्चित कर सकता हूं कि एक अद्यतन विवरण सफल रहा?