我收藏的文檔有一個 id(當然),但也有一個保存相同 id 的欄位。 問題:透過 id 檢索該文件是否更快
collection.doc(id).get().then(....)
或透過查詢
collection.where('id', '==', id).get().then(...)
我剛剛重構了我的函數程式碼。我以前使用查詢,但現在我直接使用集合中文檔的id。但我的印像是這種直接方法需要更長的時間。我只是想知道這是否只是一個印象......
理論上來說,兩者的表現沒有差別。 Firestore 查詢會隨著查詢傳回的文件數量而擴充。如果兩個查詢都傳回 1 個文檔,那麼它們應該執行相同的操作。它們本質上都是使用索引來尋找唯一值。
請參閱:查詢隨結果集的大小而不是資料集的大小而縮放
如果您確實想要對此進行微基準測試,您應該執行自己的測試來找出哪個更快。但我認為你會花費大量時間來優化一些不需要優化的東西。您可以自己決定這是否值得您花時間。
我固執己見的建議:您應該擔心程式碼的清晰度,而不是擔心效能。當您在程式的上下文中閱讀它時,哪一個對您更有意義?通常,文檔參考的單一獲取更短且更易於閱讀,並且當您只期望一個文檔時,不需要查看一組文檔結果,但您的意見可能會有所不同。
理論上來說,兩者的表現沒有差別。 Firestore 查詢會隨著查詢傳回的文件數量而擴充。如果兩個查詢都傳回 1 個文檔,那麼它們應該執行相同的操作。它們本質上都是使用索引來尋找唯一值。
請參閱:查詢隨結果集的大小而不是資料集的大小而縮放
如果您確實想要對此進行微基準測試,您應該執行自己的測試來找出哪個更快。但我認為你會花費大量時間來優化一些不需要優化的東西。您可以自己決定這是否值得您花時間。
我固執己見的建議:您應該擔心程式碼的清晰度,而不是擔心效能。當您在程式的上下文中閱讀它時,哪一個對您更有意義?通常,文檔參考的單一獲取更短且更易於閱讀,並且當您只期望一個文檔時,不需要查看一組文檔結果,但您的意見可能會有所不同。