मैं एक बड़ी मेज (> 50 मीटर पंक्तियों) है जो एक आईडी और टाइमस्टैम्प के साथ कुछ डेटा है के बीच है:PostgreSQL क्वेरी बढ़ाता है जहां डाटा दो तिथियों
id, timestamp, data1, ..., dataN
... पर एक बहु-स्तंभ सूचकांक के साथ (id, timestamp)
।
SELECT * FROM mytable WHERE id = x AND timestamp BETWEEN y AND z
यह वर्तमान में एक उच्च अंत पर 2 से अधिक मिनट लगते हैं:
मैं एक निश्चित आईडी जहां टाइमस्टैम्प दो तिथियों के बीच है, जो मैं वर्तमान में उपयोग कर कर रहा हूँ के साथ सभी पंक्तियों का चयन करने के लिए तालिका क्वेरी करने के लिए की जरूरत है मशीन (2x 3 जीएचजेड ड्यूल-कोर ज़ियोन डब्ल्यू/एचटी, 16 जीबी रैम, RAID 0 में 2 एक्स 1 टीबी ड्राइव 0) और मैं वास्तव में इसे तेज करना चाहता हूं।
मुझे this tip मिला है जो एक स्थानिक सूचकांक का उपयोग करने की सिफारिश करता है, लेकिन यह उदाहरण आईपी पते के लिए है। हालांकि, गति वृद्धि (436 से 3 एस) प्रभावशाली है।
मैं टाइमस्टैम्प के साथ इसका उपयोग कैसे कर सकता हूं?
* उच्च अंत मशीन को परिभाषित करें? वास्तव में ... 50 मिलियन पंक्तियां अब आज के मानकों द्वारा एक बड़ी मेज है। * तो, तालिका में आईडी है - टाइमस्टैम्प कहां है? * क्या सूचकांक? गुम इंडेक्स प्लस क्रैपी हार्डवेयर (उच्च अंत + सामान्य डिस्क) उन परिणामों का कारण बन सकता है। – TomTom
एचटी, 16 जीबी रैम इत्यादि के साथ दोहरी 3GHz ज़ीऑन ड्यूल-कोर इत्यादि। तालिका (आईडी, टाइमस्टैम्प) पर बहु-कॉलम इंडेक्स के साथ तालिका (आईडी, टाइमस्टैम्प, डेटा) है। – Roger
किसी भी माध्यम से उच्च अंत नहीं .... espeically जैसा कि आप ..... डिस्क के बारे में कुछ भी नहीं कहते हैं, जो किसी भी डेटाबेस सर्वर के लिए महत्वपूर्ण हिस्सा हैं। सीपीयू, या रैम बहुत मोर इथेन। आपका डिस्क लेआउट क्या है? – TomTom