डेटाबेस की परफ़ॉर्मेंस ऑप्टिमाइज़ करें

Firebase रीयल टाइम डेटाबेस को बेहतर बनाने के कुछ अलग-अलग तरीके हैं परफ़ॉर्मेंस को बेहतर बनाने में मदद मिलती है. यह जानने के लिए कि अपने विज्ञापनों की पहुंच बढ़ाने के ��िए रीयलटाइम डेटाबेस की परफ़ॉर्मेंस, अलग-अलग रीयल टाइम डेटाबेस की मदद से डेटा इकट्ठा करें निगरानी करने वाले टूल चुनें. इसके बाद, अपने ऐप्लिकेशन या रीयलटाइम डेटाबेस में बदला�� करें और ������ क��� ��ुताबिक उसका इस्तेमाल करें.

रीयलटाइम डेटाबेस की परफ़ॉर्मेंस मॉनिटर करें

इनमें से कुछ की मदद से, अपने रीयलटाइम डेटाबेस की परफ़ॉर्मेंस के बारे में डेटा इकट्ठा किया जा सकता है जानकारी के स्तर के हिसाब से, अलग-अलग टूल:

  • बड़े लेवल की खास जानकारी: प्रोफ़ाइलर टूल का इस्तेमाल करें इंडेक्स नहीं की गई क्वेरी की सूची और पढ़ने/लिखने के बारे में रीयल टाइम जानकारी पाने के लिए operations.
  • इस्तेमाल की शर्तों का अनुमान: इस्तेमाल से जुड़ी मेट्रिक इस्तेमाल करें Firebase कंसोल में उपलब्ध इस्तेमाल से जुड़ा कुल डेटा और हाई-लेवल परफ़ॉर्मेंस मेट्रिक देखी जा सकती हैं.
  • ज़्यादा जानकारी वाला ड्रिल-डाउन: क्लाउड मॉनिटरिंग का इस्तेमाल करें देखें कि समय के साथ आपके डेटाबेस की परफ़ॉर्मेंस कैसी है.

मेट्रिक के हिसाब से परफ़ॉर्मेंस को बेहतर बनाएं

डेटा इकट्ठा करने के बाद, यहां दि�� गए सबसे सही तरीकों और रणनीतियों के बारे में जानें आपके कैंपेन की परफ़ॉर्मेंस बेहतर हो सकती है.

परफ़ॉर्मेंस को बेहतर बनाने की रणनीतियों पर एक नज़र
मेट्रिक जानकारी सबसे सही तरीके
लोड करना/इस्तेमाल करना ऑप्टिमाइज़ करें कि आपके डेटाबेस की क्षमता का कितना हिस्सा इस्तेमाल को प्रोसेस किया जा रहा है किसी भी समय किए गए अनुरोधों के हिसाब से (**लोड** में दिखाए जाते हैं या **io/database_load** मेट्रिक). डेटा स्ट्रक्चर को ऑप्टिमाइज़ करना
पूरे डेटाबेस में शार्ड डेटा का इस्तेमाल किया जाता है
सुनने वाले लोगों की परफ़ॉर्मेंस को बेहतर बनाएं
क्वेरी पर आधारित नियमों की मदद से डाउनलोड की संख्या सीमित करें
कनेक्शन ऑप्टिमाइज़ करें
चालू कनेक्शन एक साथ चालू रहने वाले कनेक्शन की संख्या को संतुलित करें को 2,00,000 कनेक्शन की सीमा में बनाए रखना होगा. डेटा को अलग-अलग डेटाबेस में बांटना
नए कनेक्शन कम करें
आउटगोइंग बैंडविड्थ अगर आपको अपने डेटाबेस से डाउनलोड किए गए डेटा की संख्या से ज़्यादा डाउनलोड दिखते हैं, तो टेक्स्ट पढ़ने की क्षमता को बेहतर बनाया जा सकता है और कम किया जा सकता है डेटा एन्क्रिप्ट (सुरक्षित) करने की सुविधा मिलती है. कनेक्शन ऑप्टिमाइज़ करें
अपने डेटा स्ट्रक्चर को ऑप्टिमाइज़ करना
क्वेरी-आधारित नियमों की मदद से डाउनलोड की संख्या सीमित करें
एसएसएल सेशन का फिर से इस्तेमाल करना
सुनने वाले लोगों की क्षमता बढ़ाएं
डेटा का ऐक्सेस प्रतिबंधित करें
डिवाइस का स्टोरेज पक्का करें कि इस्तेमाल न किया गया डेटा सेव न हो. अगर ऐसा नहीं होता है, तो दूसरे डेटाबेस और/या Firebase प्रॉडक्ट में सेव किए गए डेटा को कोटा. इस्तेमाल नहीं किया गया डेटा मिटाएं
अपने डेटा स्ट्रक्चर को ऑप्टिमाइज़ करना
डेटा को अलग-अलग डेटाबेस में बांटना
Firebase के लिए Cloud Storage का इस्तेमाल करें

कनेक्शन ऑप्टिमाइज़ करें

GET और PUT जैसे RESTful अनुरोधों को कनेक्ट करने के लिए अब भी कनेक्शन की ज़रूरत होती है वह कनेक्शन कुछ समय तक ही रहता है. ये अक्सर, कुछ समय के लिए बने रहने वाले कनेक्शन हैं कनेक्शन की लागत, डेटाबेस लोड, और रीयलटाइम के मुकाबले आउटगोइंग बैंडविड्थ, आपके डेटाबेस के ऐक्टिव कनेक्शन.

जब भी हो सके, अपने ऐप्लिकेशन के प्लैटफ़ॉर्म के लिए, SDK टूल के मूल SDK टूल का इस्तेमाल करें REST एपीआई. SDK टूल, ओपन कनेक्शन बनाए रखते हैं. इससे एसएसएल एन्क्रिप्शन की लागत कम हो जाती है और डेटाबेस लोड, जो REST API के साथ जुड़ सकते हैं.

अगर REST API का इस्तेमाल किया जाता है, तो एचटीटीपी कीप-अलाइव का इस्तेमाल करके, कनेक्शन खोलो या इस्तेमाल करो सर्वर से भेजे गए इवेंट, इससे एसएसएल हैंडशेक की लागत कम हो सकती है.

एक से ज़्यादा डेटाबेस में शार्ड डेटा

अपने डेटा को कई रीयल टाइम डेटाबेस इंस्टेंस में बांटना. इन्हें यह भी कहा जाता है डेटाबेस शार्डिंग के तीन फ़ायदे हैं:

  1. अपने ऐप्लिकेशन पर एक साथ, चालू कनेक्शन की कुल संख्या को इतने दिनों तक बढ़ाएं इसे अलग-अलग डेटाबेस इंस्टेंस में बांटता है.
  2. सभी डेटाबेस इंस्टेंस में बैलेंस लोड.
  3. अगर आपके पास उपयोगकर्ताओं का ऐसा ग्रुप है जिसे सिर्फ़ अलग-अलग ऐक्सेस की ज़रूरत है डेटा सेट के लिए, डेटा सेट में ज़्यादा थ्रूपुट और कम वैल्यू के लिए, अलग-अलग डेटाबेस इंस्टेंस का इस्तेमाल करें इंतज़ार का समय.

अगर आप ब्लेज़ प्राइसिंग प्लान का इस्तेमाल कर रहे हैं, तो आपके पास कई ऐसेट बनाने का विकल्प है एक ही Firebase प्रोजेक्ट में डेटाबेस इंस्टेंस, किसी सामान्य उपयोगकर्ता का फ़ायदा लेते हुए पुष्टि करने का तरीका.

इस बारे में ज़्यादा जानें कि डेटा को कब और कैसे शेयर करना है.

कुशल डेटा स्ट्रक्चर बनाएं

क्योंकि रीयलटाइम डेटाबेस, पाथ के चाइल्ड नोड से डेटा हासिल करने के साथ-साथ यह भी फ़े�� करता है नहीं है, तो अपने डेटा स्ट्रक्चर को जितना हो सके उतना फ़्लैट रखना अच्छा रहता है. इस तरह से, अपनी ज़रूरत के हिसाब से डेटा वापस पाया जा सकता है. ग़ैर-ज़रूरी डेटा डाउनलोड कर सकें.

खास तौर पर, अपना डेटा स्ट्रक्चर करते समय लिखने और मिटाने पर विचार करें. उदाहरण के लिए, हज़ारों पत्तियों वाले पाथ को मिटाना ज़्यादा खर्चीला हो सकता है. हर नोड में एक से ज़्यादा सबट्री और कम पत्तियों की मदद से, उन्हें पाथ में बांटा जा रहा है तेज़ी से मिटाने के लिए भी किया जा सकता है.

इसके अलावा, हर राइट आपके डेटाबेस के कुल इस्तेमाल का 0.1% हिस्सा ले सकता है. अपने डेटा को इस तरह व्यवस्थित करें कि आप कई बैच बनाकर एक साथ कई यूनिट बना सकें में या तो update() तरीके से मल्टी-पाथ के रूप में SDK टूल या RESTful PATCH अनुरोध.

अपने डेटा स्ट्रक्चर को ऑप्टिमाइज़ करने और परफ़ॉर्मेंस को बेहतर बनाने के लिए, डेटा स्ट्रक्चर के लिए सबसे सही तरीके.

बिना अनुमति के ऐक्सेस रोकना

इसकी मदद से, अपने डेटाबेस पर बिना अनुमति वाली कार्रवाइयों को रोकें रीयलटाइम डेटाबेस के सुरक्षा नियम. उदाहरण के लिए, नियमों का इस्तेमाल करने से ऐसी स्थिति से बचा जा सकता है जिसमें नुकसान पहुंचाने वाला उपयोगकर्ता बार-बार आपके पूरे डेटाबेस को डाउनलोड कर लेता है.

Firebase रीयल टाइम डेटाबेस नियमों का इस्तेमाल करने के बारे में ज़्यादा जानें.

डाउनलोड सीमित करने के लिए क्वेरी-आधारित नियमों का इस्तेमाल करें

रीयलटाइम डेटाबेस के सुरक्षा नियम आपके डेटाबेस के डेटा को ऐक्सेस करने पर पाबंदी लगाते हैं. हालांकि, ये नियम भी आपके डेटाबेस के डेटा को ऐक्सेस कर सकते हैं रीड ऑपरेशन के ज़रिए लौटाए गए डेटा की सीमा तय करता है. जब आप इस्तेमाल करें क्वेरी पर आधारित नियम होते हैं, जैसा कि query. एक्सप्रेशन में तय किया गया है, जैसे कि query.limitToFirst, क्वेरी ��िर्फ़ नियम से जुड़ी डेटा को फिर से हासिल करती हैं.

उदाहरण के लिए, नीचे दिए गए नियम की मदद से, सिर्फ़ शुरुआती 1,000 लोगों को पढ़ने का ऐक्सेस सीमित किया जा सकता है प्राथमिकता के हिसाब से क्रम में लगाए गए क्वेरी के नतीजे:

messages: {
  ".read": "query.orderByKey &&
            query.limitToFirst <= 1000"
}

// Example query:
db.ref("messages").limitToFirst(1000)
                  .orderByKey("value")

रीयल टाइम डेटाबेस के सुरक्षा नियमों के बारे में ज़्यादा जानें.

इंडेक्स क्वेरी

डेटा को इंडेक्स करने से, आपकी साइट के डेटा की कुल वैल्यू कम हो जाती है बैंडविथ, जिसका इस्तेमाल आपके ऐप्लिकेशन की हर ��्वेरी के लिए किया जाता है.

एसएसएल सेशन का फिर से इस्तेमाल करना

जारी करके, फिर से कनेक्ट किए गए कनेक्शन पर एसएसएल एन्क्रिप्शन ओवरहेड लागत कम करें TLS सेशन के टिकट. खास तौर पर, तब मददगार होता है, जब आपको डेटाबेस से बार-बार और सुरक्षित कनेक्शन की ज़रूरत हो.

लिसनर की क्षमता को बेहतर बनाएं

डेटा की मात्रा को सीमित करने के लिए, अपने लिसनर को पाथ में जितना हो सके उतना नीचे रखें तो वे सिंक होते हैं. आपके लिसनर को उस डेटा के करीब होना चाहिए जो आप उन्हें पाना चाहते हैं. डेटाबेस रूट पर न सुनें, क्योंकि इससे डाउनलोड हो जाता है आपका पूरा डेटाबेस.

सुनने की कार्रवाई से जुड़े डेटा को वापस करने और इस्तेमाल करने की सीमा तय करने के लिए क्वेरी जोड़ें ऐसे सुनने वाले जो सिर्फ़ डेटा को अपडेट डाउनलोड करते हैं — उदाहरण के लिए, on() के बजाय once(). .once() को उन कार्रवाइयों के लिए रिज़र्व करें जिन्हें डेटा को अपडेट करने की वाकई ज़रूरत नहीं होती. इसके अलावा, जब भी संभव हो, orderByKey() का इस्तेमाल करके बेहतरीन परफ़ॉर्मेंस. orderByChild() के साथ क्रम से लगाने पर, छह से आठ गुना धीमा हो सकता है और बड़े डेटा सेट के लिए, orderByValue() के साथ क्रम से लगाना काफ़ी धीमा हो सकता है, क्योंकि यह परसिस्टेंस लेयर से पूरी जगह की जानकारी पढ़ना ज़रूरी है.

पक्का करें कि लिसनर को डाइनैमिक तौर पर भी जोड़ा जा सके और अगर वे मौजूद नहीं हैं, तो उन्हें हटा दें ज़्यादा समय की ज़रूरत होती है.

इस्तेमाल नहीं किया गया डेटा मिटाएं

समय-समय पर अपने डेटाबेस से इस्तेमाल नहीं किया गया या डुप्लीकेट डेटा हटाएं. आप अपने डेटा की मैन्युअल रूप से जांच करने के लिए बैकअप चलाएं या समय-समय पर Google Cloud Storage बकेट में उसका बैक अप लेना. साथ ही Firebase के लिए Cloud Storage की मदद से, सेव किए गए डेटा को होस्ट करें.

अपडेट किया जा सकने वाला स्केलेबल कोड शिप करें

IoT डिवाइसों में पहले से मौजूद ऐप्लिकेशन में स्केलेबल कोड होना चाहिए आसानी से अपडेट करें. इस्तेमाल के उदाहरणों को अच्छी तरह से टेस्ट करना न भूलें. ध्यान रखें कि यह ज़रूरी न हो जहां आप अपना उपयोगकर्ता आधार तेज़ी से बढ़ा सकते हैं और अपनी का इस्तेमाल करें. ऐसे बड़े बदलावों पर ध्यान से विचार करें जिनकी आपको ज़रूरत पड़ सकती है समस्या का हल है, तो उदाहरण के लिए, अगर आपने डेटा को शार्ड करने का फ़ैसला किया है.