Veritabanı Performansını Optimize Etme

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:

  1. Uygulamanızda izin verilen toplam eş zamanlı, etkin bağlantı sayısını şu kadar artırın: veritabanı örnekleri arasında böleriz.
  2. Veritabanı örnekleri arasında yükü dengeleyin.
  3. 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.