"यदि कोई कर्मचारी अपना काम अच्छी तरह से करना चाहता है, तो उसे पहले अपने औजारों को तेज करना होगा।" - कन्फ्यूशियस, "द एनालेक्ट्स ऑफ कन्फ्यूशियस। लू लिंगगोंग"
मुखपृष्ठ > प्रोग्रामिंग > (एसक्यूएल क्वेरी) एक्सप्रेस.जेएस में कैशिंग बनाम इंडेक्सिंग

(एसक्यूएल क्वेरी) एक्सप्रेस.जेएस में कैशिंग बनाम इंडेक्सिंग

2024-11-08 को प्रकाशित
ब्राउज़ करें:680

(SQL Query) Caching vs Indexing in Express.js

हैलो देव, इस मंच पर यह मेरी पहली पोस्ट है! ?

मैं एक्सप्रेस.जेएस और एसक्यूएल के साथ अपने एक आश्चर्यजनक अनुभव को साझा करना चाहता था। मैं एक शुरुआती डेवलपर हूं, और अपने प्रोजेक्ट के लिए एपीआई पर काम करते समय, मैं प्रति दिन 200k से अधिक एपीआई अनुरोधों को संभाल रहा था। प्रारंभ में, मैंने Express.js API के साथ एक SQLite डेटाबेस (~400 एमबी) स्थापित किया, और चीजों को गति देने के लिए Node.js कैशिंग का उपयोग किया।

सबसे पहले, एक क्वेरी के लिए प्रतिक्रिया समय लगभग 200-300 एमएस था, क्योंकि इसमें कई जॉइन और खोजें शामिल थीं। इसलिए, मैंने यह देखने के लिए कुछ प्रयोग चलाने का निर्णय लिया कि क्या मैं प्रदर्शन में सुधार कर सकता हूं।

मैंने यह किया:

  • मैंने नोड कैशिंग हटा दी।
  • मैंने 5 तालिकाओं में 20 कॉलम पर इंडेक्स बनाए (मेरे डीबी में 5 तालिकाओं में कुल 103 कॉलम हैं)।

परिणाम आश्चर्यजनक था! अनुक्रमण के बाद, मेरी कुछ अधिक जटिल क्वेरीज़, जिनमें कई जॉइन शामिल थे, केवल 3-5 एमएस में निष्पादित की जा रही थीं।

पहले, नोड कैशिंग के साथ:

  • पहले अनुरोध में लगभग 300-400 एमएस लगते थे।
  • बाद के अनुरोधों में 2-5 एमएस लगेंगे (कैशिंग के कारण)।

बाद में, केवल SQLite इंडेक्स के साथ:
प्रत्येक अनुरोध में बिना किसी कैशिंग के केवल 7-10 एमएस लगता है।

अब क्वेरीज़ लगातार तेज़ हैं, और इससे सर्वर लोड भी कम हो गया है! प्रारंभ में, मैं अपना ऐप 4 जीबी रैम और 4 वीसीपीयू के साथ DigitalOcean ड्रॉपलेट पर चला रहा था। लेकिन SQL क्वेरी को अनुकूलित करने के बाद, मैं केवल 2 जीबी रैम और 2 वीसीपीयू के साथ समान कार्यभार को आराम से संभाल सकता हूं।

मुझे पता है कि यह सरल लग सकता है, लेकिन उचित SQL अनुक्रमण ने क्वेरी प्रदर्शन में इतना बड़ा अंतर ला दिया है कि अब मुझे कैशिंग पर भरोसा करने की भी आवश्यकता नहीं है। ?

विज्ञप्ति वक्तव्य यह आलेख यहां पुन: प्रस्तुत किया गया है: https://dev.to/w3vish/sql-query-caching-vs-indexing-in-expressjs-40n6?1 यदि कोई उल्लंघन है, तो कृपया इसे हटाने के लिए [email protected] से संपर्क करें।
नवीनतम ट्यूटोरियल अधिक>

चीनी भाषा का अध्ययन करें

अस्वीकरण: उपलब्ध कराए गए सभी संसाधन आंशिक रूप से इंटरनेट से हैं। यदि आपके कॉपीराइट या अन्य अधिकारों और हितों का कोई उल्लंघन होता है, तो कृपया विस्तृत कारण बताएं और कॉपीराइट या अधिकारों और हितों का प्रमाण प्रदान करें और फिर इसे ईमेल पर भेजें: [email protected] हम इसे आपके लिए यथाशीघ्र संभालेंगे।

Copyright© 2022 湘ICP备2022001581号-3