我在Android應用上使用Firebase數據庫。通常情況下,它工作正常。但是當數據庫越來越大時,查詢性能越來越差。我在數據庫(在「elk」和「su」節點下)添加了約5k的記錄,然後在數據庫上查詢(在「剪切」和「用戶」節點上),但所有查詢都非常慢。我在數據庫規則上定義了數據索引,但它不起作用。我該如何解決這個問題?在大型數據集上查詢Firebase數據庫非常慢
這裏是我的查詢:
// query to get the zones followed by user
FirebaseDatabase.getInstance()
.getReference()
.child("user")
.child(userID)
.child("zones");
// query to get cuts on a zone
FirebaseDatabase.getInstance()
.getReference()
.child("cut")
.child(cutType)
.orderByChild("zoneID")
.equalTo(zoneID);
當你說非常非常緩慢。你的意思是多慢?你有任何測試結果或什麼?我們如何知道網絡是否正常,或者手機運行良好,應該有更具體的問題證據,直到此時我們只能假設並指責火力點本身的功能緩慢。請嘗試使用最小,中等,大型數據庫等生成更具體的測試結果。同時牢記網絡強度,手機緩存性能等各種因素。 –
您在問題中包含了JSON樹的圖片。請用實際的JSON替換爲文本,您可以通過點擊Firebase數據庫控制檯中的導出按鈕輕鬆獲取。將JSON作爲文本可以搜索,使我們能夠輕鬆使用它來測試您的實際數據,並將其用於我們的答案中,並且通常只是一件好事。 –
如果速度緩慢,它幾乎毫無例外地是網絡帶寬與您正在下載的數據的函數。我不會立即看到任何看起來非常大的東西,並且您的索引看起來是正確的。如果您可以在jsfiddle/jsbin中重現問題,我們可以嘗試一下,看看我們的表現與您的表現相比如何。 –