firestore: Adakah lebih cepat untuk mendapatkan semula dokumen melalui id atau dengan pertanyaan?
P粉291886842
P粉291886842 2023-09-14 08:54:32
0
1
445

Koleksi dokumen saya mempunyai id (sudah tentu), tetapi juga mempunyai medan yang memegang id yang sama. Soalan: Adakah lebih cepat untuk mendapatkan semula dokumen ini dengan id

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

atau melalui pertanyaan

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

Saya baru sahaja memfaktorkan semula kod fungsi saya. Saya pernah menggunakan pertanyaan, tetapi sekarang saya terus menggunakan id dokumen dalam koleksi. Tetapi tanggapan saya ialah pendekatan langsung ini mengambil masa yang lebih lama. Saya hanya tertanya-tanya adakah ini hanya kesan...

P粉291886842
P粉291886842

membalas semua(1)
P粉232409069

Secara teorinya, tiada perbezaan prestasi antara keduanya. Skala pertanyaan Firestore dengan bilangan dokumen yang dikembalikan oleh pertanyaan. Jika kedua-dua pertanyaan mengembalikan 1 dokumen, maka mereka harus melakukan operasi yang sama. Mereka pada asasnya menggunakan indeks untuk mencari nilai unik.

Lihat: Skala pertanyaan dengan saiz set hasil, bukan saiz set data

Jika anda benar-benar ingin menanda aras mikro ini, anda harus melakukan ujian anda sendiri untuk mengetahui yang mana lebih pantas. Tetapi saya fikir anda akan menghabiskan banyak masa untuk mengoptimumkan sesuatu yang tidak perlu dioptimumkan. Anda boleh memutuskan sendiri sama ada ini berbaloi dengan masa anda.

Nasihat pendapat saya: anda harus bimbang tentang kejelasan kod, bukan prestasi. Yang manakah lebih masuk akal kepada anda apabila anda membacanya dalam konteks program? Secara amnya, satu pengambilan rujukan dokumen adalah lebih pendek dan lebih mudah dibaca, dan tidak perlu melihat set hasil dokumen apabila anda hanya menjangkakan satu dokumen, tetapi pendapat anda mungkin berbeza-beza.

Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan