Firebase Realtime Database'i iyileştirmenin birkaç farklı yolu vardır. en iyi uygulamaları paylaşacağız. Reklamlarınızı optimize etmek için neler yapabileceğinizi Realtime Database performansı, farklı Realtime Database aracılığıyla veri toplama ve ardından uygulamanızda veya Realtime Database kullanımınızda buna göre değişiklikler yapın.
Realtime Database performansını izleme
Realtime Database'inizin performansıyla ilgili verileri birkaç farklı araçlar kullanabilirsiniz:
- Üst düzey genel bakış: Profil oluşturma aracını kullanın dizine eklenmemiş sorguların listesi ve okuma/yazma işlemine gerçek zamanlı genel bakış için operations.
- Faturalanan kullanım tahmini: Kullanım metriklerini kullanın Firebase konsolunda kullanılabilir görmek için faturalanan kullanımınızı ve üst düzey performans metriklerini görebilirsiniz.
- Ayrıntılı inceleme: Cloud Monitoring'i kullanın 'i kullanabilirsiniz.
Performansı metriğe göre artırın
Verileri topladıktan sonra aşağıdaki en iyi uygulamaları ve stratejileri keşfedin temel alarak bu stratejileri kullanabilirsiniz.
Bir bakışta performans iyileştirme stratejileri | ||
---|---|---|
Metrik | Açıklama | En iyi uygulamalar |
Yükleme/Kullanım | Veritabanınızın kapasitesinin ne kadarının kullanımda olduğunu optimize edin istekleri (**Yükleme** veya **io/database_load** metrikleri için geçerlidir.) |
Veri yapınızı optimize edin Verileri veritabanları arasında parçalama Dinleyici verimliliğini artırın Sorguya dayalı kurallarla indirmeleri sınırlama Bağlantıları optimize edin |
Etkin bağlantı sayısı | Ağ ile aynı anda gerçekleşen etkin bağlantıların sayısını dengeleyin 200.000 bağlantı sınırının altında kalabileceksiniz. |
Verileri veritabanları arasında parçalama Yeni bağlantıları azaltın |
Giden bant genişliği | Veritabanınızdan yapılan indirme sayısı beklediğinizden fazla görünüyorsa okuma işlemlerinizin verimliliğini artırabilir ve çalışmanızın verimini şifrelemenin ek yükünü azaltır. |
Bağlantıları optimize edin Veri yapınızı optimize edin Sorguya dayalı kurallarla indirmeleri sınırlama SSL oturumlarını yeniden kullanma Dinleyici verimliliğini artırın Verilere erişimi kısıtlama |
Depolama | Kullanılmayan verileri depolamadığınızdan emin olun veya diğer veritabanlarında ve/veya Firebase ürünlerinde depolanan verileri kota. |
Kullanılmayan verileri temizleyin Veri yapınızı optimize edin Verileri veritabanları arasında parçalama Firebase için Cloud Storage'ı kullanma |
Bağlantıları optimize edin
GET
ve PUT
gibi RESTful istekler için bağlantı gerekir
kısa ömürlü olabilir. Bu sık ve kısa ömürlü bağlantılar
bağlantı maliyetleri, veritabanı yükü ve depolama maliyetlerine
gerçek zamanlı, etkin bağlantılara kıyasla giden bant genişliğidir.
Mümkün olduğunda, REST API. SDK'lar açık bağlantılar koruyarak SSL şifreleme maliyetlerini azaltır REST API ile eklenebilen veritabanı yükü ve veritabanı yüküdir.
REST API kullanıyorsanız bağlantıyı aç veya şunu kullan: sunucu tarafından gönderilen etkinlikler, Bu, SSL el sıkışmalarından kaynaklanan maliyetleri azaltabilir.
Verileri birden çok veritabanında parçalama
Verilerinizi birden fazla Realtime Database örneğine bölme (diğer adıyla üç faydası vardır:
- Uygulamanızda izin verilen toplam eş zamanlı, etkin bağlantı sayısını şu kadar artırın: veritabanı örnekleri arasında böleriz.
- Veritabanı örnekleri arasında yükü dengeleyin.
- Yalnızca ayrık verilere erişmesi gereken bağımsız kullanıcı gruplarınız varsa veri kümelerinde, daha yüksek işleme hızı ve daha düşük işleme hızı için farklı veritabanı örnekleri kullanın
Blaze fiyatlandırma planı kullanıyorsanız birden fazla seçenek oluşturabilirsiniz: aynı Firebase projesinde veritabanı örneklerini kullanarak, kimlik doğrulama yöntemidir.
Verilerin nasıl ve ne zaman parçalanacağı hakkında daha fazla bilgi edinin.
Verimli veri yapıları oluşturun
Realtime Database, verileri hem yolun alt düğümlerinden hem de veri yapınızı mümkün olduğunca düz tutmak daha mantıklıdır. Bu sayede, ihtiyaç duyduğunuz verileri ve istemcilere gereksiz veriler indirir.
Özellikle, verilerinizi yapılandırırken yazma ve silme işlemlerini göz önünde bulundurun. Örneğin, binlerce yaprağı olan yolların silinmesi pahalı olabilir. Bunları birden çok alt ağaç ve düğüm başına daha az yaprak bulunan yollara ayırma silme işlemlerini hızlandırabilir.
Ayrıca her yazma işlemi, toplam veritabanı kullanımınızın% 0,1'ini kullanabilir.
Verilerinizi, tek bir sayfada toplu yazma yapmanızı sağlayacak şekilde yapılandırın.
işlemi, tablodaki update()
yöntemlerinden biriyle güncellenince
SDK'lar veya RESTful PATCH
istekleri.
Veri yapınızı optimize etmek ve performansı artırmak için en iyi uygulamalara göz atın.
Yetkisiz erişimi engelleyin
Veritabanınızdaki yetkisiz işlemleri önlemek için Gerçek Zamanlı Veritabanı Güvenlik Kuralları. Örneğin, kuralları kullanarak farklı sürekli olarak veritabanınızın tamamını indirir.
Firebase Realtime Database Kurallarını kullanma hakkında daha fazla bilgi edinin.
İndirmeleri sınırlandırmak için sorgu tabanlı kurallar kullanın
Gerçek Zamanlı Veritabanı Güvenlik Kuralları, veritabanınızdaki verilere erişimi kısıtlar ancak
okuma işlemleri aracılığıyla döndürülen veriler üzerinde sınır işlevi görür. Bunu kullandığınızda
query.limitToFirst
gibi query.
ifadelerle tanımlandığı şekilde sorguya dayalı kurallar
sorguları yalnızca kuralla sınırlı verileri alır.
Örneğin, aşağıdaki kural okuma erişimini yalnızca ilk 1.000 kullanıcı ile sınırlandırır. öncelik sırasına göre sıralanmış olarak:
messages: {
".read": "query.orderByKey &&
query.limitToFirst <= 1000"
}
// Example query:
db.ref("messages").limitToFirst(1000)
.orderByKey("value")
Gerçek Zamanlı Veritabanı Güvenlik Kuralları hakkında daha fazla bilgi edinin.
Dizin sorguları
Verilerinizi dizine eklemek toplamı azaltır uygulamanızın çalıştırdığı her sorgu için kullandığınız bant genişliği
SSL oturumlarını yeniden kullan
Yeniden başlatılan bağlantılarda SSL şifrelemesinin ek yük maliyetlerini azaltmak için TLS oturum biletleri. Bu, özellikle veri tabanına sık sık ve güvenli bağlantı yapmanız gerekiyorsa yararlı olabilir.
Dinleyici verimliliğini artırın
Veri miktarını sınırlamak için dinleyicilerinizi yolun mümkün olduğunca aşağısına yerleştirin senkronize edebilirler. Dinleyicileriniz, almalarını istediğiniz verilere yakın olmalıdır. Veritabanı kökünde dinlemeyin, çünkü indirme işlemi devam ettirebilirsiniz.
Dinleme işlemlerinizin döndürdüğü ve kullandığı verileri sınırlamak için sorgular ekleyin
yalnızca veri güncellemelerini indiren dinleyiciler (örneğin, on()
)
once()
. Veri güncellemesi gerektirmeyen işlemler için .once()
ayırın.
Ayrıca, sorgularınızı (mümkünse) orderByKey()
kullanarak
en iyi performansa sahip. orderByChild()
ile sıralama 6-8 kat daha yavaş olabilir ve
orderByValue()
ile sıralama, büyük veri kümelerinde çok yavaş olabilir çünkü
kalıcılık katmanından konumun tamamının okunmasını gerektirir.
Ayrıca dinleyicileri dinamik olarak eklediğinizden ve daha uzun süre gerekir.
Kullanılmayan verileri temizleyin
Veritabanınızdaki kullanılmayan veya yinelenen verileri düzenli olarak kaldırın. Şunları yapabilirsiniz: verilerinizi manuel olarak incelemek için yedekleri çalıştırabilir veya düzenli aralıklarla Google Cloud Storage paketine yedeklemesini gerektirir. Ayrıca depolanan verileri Firebase için Cloud Storage üzerinden barındırmayı düşünebilirsiniz.
Güncelleyebileceğiniz ölçeklenebilir kodu gönderin
IoT cihazlarında yerleşik olarak bulunan uygulamalar, Google Cloud'da kolayca güncelleyebilirsiniz. Kullanım alanlarını kapsamlı bir şekilde test ettiğinizden emin olun, olası senaryolara dikkat edin Burada kullanıcı tabanınızı katlanarak büyütebilir ve kullanabilirsiniz. İhtiyacınız olabilecek büyük değişiklikleri dikkatlice değerlendirin yardımcı olabilir. Örneğin, verilerinizi parçalara ayırmaya karar verirseniz.