首頁  >  問答  >  主體

firestore:透過 id 檢索文件還是透過查詢檢索文件更快?

我收藏的文檔有一個 id(當然),但也有一個保存相同 id 的欄位。 問題:透過 id 檢索該文件是否更快

collection.doc(id).get().then(....)

或透過查詢

collection.where('id', '==', id).get().then(...)

我剛剛重構了我的函數程式碼。我以前使用查詢,但現在我直接使用集合中文檔的id。但我的印像是這種直接方法需要更長的時間。我只是想知道這是否只是一個印象......

P粉291886842P粉291886842401 天前407

全部回覆(1)我來回復

  • P粉232409069

    P粉2324090692023-09-15 00:02:17

    理論上來說,兩者的表現沒有差別。 Firestore 查詢會隨著查詢傳回的文件數量而擴充。如果兩個查詢都傳回 1 個文檔,那麼它們應該執行相同的操作。它們本質上都是使用索引來尋找唯一值。

    請參閱:查詢隨結果集的大小而不是資料集的大小而縮放

    如果您確實想要對此進行微基準測試,您應該執行自己的測試來找出哪個更快。但我認為你會花費大量時間來優化一些不需要優化的東西。您可以自己決定這是否值得您花時間。

    我固執己見的建議:您應該擔心程式碼的清晰度,而不是擔心效能。當您在程式的上下文中閱讀它時,哪一個對您更有意義?通常,文檔參考的單一獲取更短且更易於閱讀,並且當您只期望一個文檔時,不需要查看一組文檔結果,但您的意見可能會有所不同。

    回覆
    0
  • 取消回覆