टाइम-सीरीज़ इंडेक्स विकल्प
टाइम-सीरीज़ कार्यभार के लिए सही इंडेक्स चुनें — संयुक्त (device_id, ts DESC) सामान्य पैटर्न को कवर करता है
टाइम-सीरीज़ इंडेक्स विकल्प, CoddyKit पर SQL Academy का एक निःशुल्क पाठ है। यह 4 में से 4वाँ पाठ है। आप नीचे पूरा पाठ निःशुल्क पढ़ सकते हैं—फिर अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर के साथ ब्राउज़र में इसका व्यावहारिक अभ्यास कर सकते हैं। यह SQL Academy सीखने के मार्ग का हिस्सा है और आपकी प्रगति वेब तथा CoddyKit ऐप पर सिंक होती रहती है। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
सामान्य टाइम-सीरीज़ क्वेरी
“एक इकाई का हालिया डेटा”:
SELECT * FROM metrics
WHERE device_id = 42
AND ts >= NOW() - INTERVAL '24 hours'
ORDER BY ts DESC LIMIT 1000;संयुक्त इंडेक्स (device_id, ts DESC)
टाइम-सीरीज़ के लिए मानक इंडेक्स:
CREATE INDEX metrics_device_ts_idx
ON metrics (device_id, ts DESC);
-- Equality on device_id, range + sort on ts: index handles both.क्रम क्यों महत्वपूर्ण है
- (device_id, ts) — “इस डिवाइस का हालिया डेटा” के लिए सर्वोत्तम
- (ts, device_id) — “इस समय के सभी डिवाइस” के लिए सर्वोत्तम
क्वेरी के मिश्रण के आधार पर चुनें।
केवल जोड़ने वाली तालिकाओं के लिए BRIN
BRIN बहुत छोटा होता है — एक अरब पंक्तियों वाली तालिका के लिए कुछ MB। यह तभी प्रभावी होता है जब डेटा इंडेक्स किए गए कॉलम के अनुसार भौतिक रूप से क्रमबद्ध हो (जैसा कि टाइम-सीरीज़ में आमतौर पर होता है):
CREATE INDEX metrics_ts_brin ON metrics USING BRIN (ts);
-- Excellent for "give me last 24 hours" on append-only tables.B-tree बनाम BRIN
- B-tree — सटीक आईडी से मिलीसेकंड में खोज; हालिया समय से खोज
- BRIN — एकदिश डेटा पर तेज़ रेंज स्कैन; रखरखाव की कम लागत
आप इन्हें मिला सकते हैं: (device_id) पर B-tree और (ts) पर BRIN।
हाइपरटेबल इंडेक्स
TimescaleDB सभी चंक्स में इंडेक्स लागू करता है। अनुपयोगी इंडेक्स हटा दें — हर चंक पर उनकी लागत आती है।
अधिक उपयोग वाले छोटे हिस्सों के लिए आंशिक इंडेक्स
यदि 99% क्वेरी हालिया डेटा पर चलती हैं:
CREATE INDEX metrics_recent_idx
ON metrics (device_id, ts DESC)
WHERE ts >= NOW() - INTERVAL '7 days';
-- Issue: predicate must use literal date or be re-created periodically.इंडेक्स कॉलम पर फ़ंक्शन लगाने से बचें
इंडेक्स किए गए कॉलम पर फ़ंक्शन न लगाएँ — इससे इंडेक्स का उपयोग समाप्त हो जाता है:
-- BAD:
WHERE date_trunc('hour', ts) = $1
-- GOOD:
WHERE ts >= $1 AND ts < $1 + INTERVAL '1 hour'सबसे नई पंक्ति वाली क्वेरी के लिए इंडेक्स
“हर डिवाइस की सबसे नई रीडिंग” के लिए सही इंडेक्स क्वेरी को इंडेक्स रेंज स्कैन में बदल देता है:
CREATE INDEX metrics_device_ts_idx ON metrics (device_id, ts DESC);
SELECT DISTINCT ON (device_id) device_id, ts, value
FROM metrics
ORDER BY device_id, ts DESC;
-- Uses the index to take the first row per device.अधिक उपयोग वाले क्रम पर CLUSTER करें
CLUSTER किसी इंडेक्स के आधार पर तालिका को भौतिक रूप से फिर से क्रमबद्ध करता है। यह एक बार होने वाली प्रक्रिया है; नया डेटा फिर भी आने के क्रम में जुड़ता है:
CLUSTER metrics USING metrics_device_ts_idx;
-- Cluster is heavy. TimescaleDB chunks help by keeping recent chunks small.अधिक विशिष्टता वाली समानता के लिए हैश इंडेक्स
टाइम-सीरीज़ के लिए इसका उपयोग बहुत कम होता है, लेकिन यह उपलब्ध है। device_id पर B-tree आमतौर पर पर्याप्त होता है।
बहुत अधिक इंडेक्स न बनाएँ
टाइम-सीरीज़ तालिकाओं में लिखने का काम अधिक होता है। हर इंडेक्स से लिखने का अतिरिक्त भार बढ़ता है। केवल वही जोड़ें जिनसे आप क्वेरी चलाते हैं।
पुनरावलोकन
टाइम-सीरीज़ इंडेक्सिंग कुछ सीमित पैटर्न पर आधारित होती है।
- प्रति-इकाई क्वेरी के लिए संयुक्त (entity, ts DESC)
- केवल जोड़ने वाली रेंज क्वेरी के लिए ts पर BRIN
- हाइपरटेबल: इंडेक्स चंक्स में लागू होते हैं
- कॉलम पर फ़ंक्शन वाले प्रेडिकेट से बचें
त्वरित जाँच
आपकी सबसे अधिक चलने वाली टाइम-सीरीज़ क्वेरी device_id से फ़िल्टर करती है और पिछले 24 घंटे पढ़ती है। सबसे अच्छा इंडेक्स कौन-सा होगा?
एआई शिक्षक के साथ SQL सीखें — निःशुल्क
अपने ब्राउज़र में वास्तविक कोड लिखें और चलाएँ, चौबीसों घंटे एआई शिक्षक से तुरंत सहायता पाएँ, और वेब या ऐप पर वहीं से शुरू करें जहाँ आपने छोड़ा था।
- पाठ्यक्रम
- 46
- पाठ
- 183
अक्सर पूछे जाने वाले प्रश्न
क्या “टाइम-सीरीज़ इंडेक्स विकल्प” पाठ निःशुल्क है?
हाँ—“टाइम-सीरीज़ इंडेक्स विकल्प” का पूरा पाठ यहाँ वेब पर निःशुल्क पढ़ा जा सकता है। इंटरैक्टिव अभ्यास (अंतर्निहित कोड संपादक और 24/7 एआई ट्यूटर) करने और SQL Academy पाठ्यक्रम का बाकी हिस्सा अनलॉक करने के लिए CoddyKit PRO लें। SQL Academy पाठ्यक्रम में कुल 4 पाठ शामिल हैं।
“टाइम-सीरीज़ इंडेक्स विकल्प” में मैं क्या सीखूँगा?
टाइम-सीरीज़ कार्यभार के लिए सही इंडेक्स चुनें — संयुक्त (device_id, ts DESC) सामान्य पैटर्न को कवर करता है आप ब्राउज़र में सीधे चलाए जाने वाले व्यावहारिक कोड के साथ SQL Academy का अभ्यास करते हैं, और पाठ पूरा करते समय 24/7 एआई ट्यूटर आपके प्रश्नों के उत्तर देता है।
क्या SQL Academy शुरू करने के लिए मुझे किसी अनुभव की आवश्यकता है?
पहले के अनुभव की आवश्यकता नहीं है। CoddyKit पर SQL Academy शुरुआती से लेकर उन्नत शिक्षार्थियों तक सभी के लिए व्यवस्थित किया गया है, इसलिए आप यहीं से या शुरुआत से सीखना शुरू कर सकते हैं और अपनी गति से आगे बढ़ सकते हैं। यह 4 में से 4वाँ पाठ है।
“टाइम-सीरीज़ इंडेक्स विकल्प” पाठ पूरा करने में कितना समय लगता है?
CoddyKit का अधिकांश पाठ लगभग 5–10 मिनट में पूरा हो जाता है। हर पाठ छोटा और संवादात्मक है, इसलिए आप लगातार प्रगति करते हैं और वेब या ऐप पर वहीं से सीखना जारी रख सकते हैं जहाँ आपने छोड़ा था।
क्या मैं इस SQL Academy पाठ में कोड लिख और चला सकता हूँ?
हाँ। हर SQL Academy पाठ में एक अंतर्निर्मित कोड संपादक शामिल है, जिससे आप सीधे अपने ब्राउज़र में वास्तविक कोड लिख और चला सकते हैं और तुरंत एआई प्रतिक्रिया पा सकते हैं—स्थानीय सेटअप की आवश्यकता नहीं है।
इस पाठ्यक्रम के सभी पाठ
- TimescaleDB हाइपरटेबल
- सतत एग्रीगेट
- संपीड़न और रिटेंशन नीतियाँ
- टाइम-सीरीज़ इंडेक्स विकल्प