Понимание запросов Firestore - PullRequest
0 голосов
/ 08 апреля 2020

Я подобрал магазин огня. У меня было несколько вопросов, касающихся осторожного использования чтения и записи.

Для примера 1000 записей в коллекции, называемой местами: db.collection("places")

Я хотел понять сложность времени / запроса кода как такового

let doc_ID = `key`
db.collection("places").doc(doc_ID).get();

по сравнению с

let doc_ID = `key`
db.collection("places").where("key_to_find", "==", doc_ID).get();

Проходит ли l oop через 1000 записей поиск ключа? В первом случае я не слишком уверен. Но, конечно, должен быть лучший подход, если мои коллекции содержат 1 000 000 записей? Разве сложность времени не будет значительной, когда я начну выполнять запросы в больших коллекциях?

Приношу свои извинения, если это вопрос новичка. Хотите знать, есть ли различия между этими двумя примерами, и является ли любой из них более быстрым или более эффективным. Буду также признателен за любые указания к статьям и ресурсам, рассказывающим о лучших методах запросов в Firestore.

Огромное спасибо заранее!

РЕДАКТИРОВАТЬ: еще один вопрос, касающийся того, как запрос относится к количеству ЧИТАЛЕЙ, потому что мы платим за чтения в день в Firestore.

1 Ответ

1 голос
/ 08 апреля 2020

Firestore использует распределенный индекс для поиска документов в коллекциях на основе фильтров, которые вы указали в запросе. В этом индексе нет ничего медленного, а размер коллекции вообще не имеет значения с точки зрения производительности. Firestore масштабируется масштабно. Каждый запрос для 1000 документов выполняется так же, как и любой другой запрос для 1000 документов. В связи с этим мы говорим, что запросы Firestore масштабируются с размером набора результатов, а не с размером коллекции.

Поначалу в это может быть трудно поверить, но именно так она и была разработана, и как вы можете ожидать его выполнения. Firestore просто не будет выполнять запрос, который масштабируется таким образом, на основе своих индексов. Он либо сообщит вам, что запрос не поддерживается, либо даст ссылку для создания индекса, который обслуживает запрос в масштабе.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...