मैं एक डेटाबेस के अंदर एक क्रमबद्ध सूची को स्टोर करना चाहता हूं। मैं निम्नलिखित कार्य कुशलता से करना चाहता हूं।
- डालें (x) - तालिका में रिकॉर्ड x डालें
- Delete (x) - टेबल से record x हटाएं
- पहले (x, n) - सॉर्ट की गई सूची में रिकॉर्ड x से पहले के 'n' रिकॉर्ड लौटाएं।
- बाद में (x, n) - सॉर्ट की गई सूची में रिकॉर्ड x को सफल करते हुए 'n' रिकॉर्ड लौटाएं।
- पहला (n) - पहले छांटे गए सूची से 'एन' रिकॉर्ड लौटाएं।
- अंतिम (n) - क्रमबद्ध सूची से अंतिम 'एन' रिकॉर्ड लौटाएं।
- तुलना करें (x, y) - तालिका से दो रिकॉर्ड x और y को देखते हुए, पता लगाएँ कि क्या x> y है।
जिस सरल विधि के बारे में मैं सोच सकता था, वह है उस विशेषता को छाँट कर तालिका और क्वेरी में किसी प्रकार की 'रैंक' विशेषता को संग्रहित करना। लेकिन इस विधि में एक रैंक के साथ रिकॉर्ड सम्मिलित / संशोधित करना एक महंगा ऑपरेशन बन जाता है। क्या कोई बेहतर तरीका है?
विशेष रूप से, मैं Amazon के SimpleDB का उपयोग करके तालिका को लागू करना चाह रहा हूं। लेकिन रिलेशनल डेटाबेस के लिए एक सामान्य उत्तर भी सहायक होना चाहिए।
लोड प्रोफ़ाइल पर अपडेट करें:
चूंकि मैं एक वेब एप्लिकेशन के लिए यह योजना बना रहा हूं, यह ऐप का उपयोग करने वाले उपयोगकर्ताओं की संख्या पर निर्भर करता है।
यदि 100k सक्रिय उपयोगकर्ता (सुपर आशावाद: पी) हैं, तो प्रति दिन मेरा बहुत अनुमानित अनुमान होगा
500k चयन, 100k आवेषण और हटाता है, 500k अद्यतन करता है
मुझे उम्मीद है कि तालिका कुल 500k तक बढ़ेगी।
मैं अपडेट, इंसर्ट और तुलना ऑपरेशन पर ऑप्टिमाइज़ करना चाह रहा हूँ। वस्तुओं की रैंक लगातार बदल रही होगी और मुझे तालिका को अद्यतन रखने की आवश्यकता है।