#firebase #firebase-realtime-database #google-cloud-functions
#firebase #firebase-realtime-database #google-cloud-функции
Вопрос:
У меня есть пользовательский объект, который содержит более или менее 20 различных полей, и среди них классические firstName
и lastName
.
Мне было интересно, с точки зрения производительности, что было бы лучше всего сделать, если бы я хотел получить поля firstName
и lastName
.
- выполните 2 чтения в
users/user_id/firstName
иusers/user_id/lastName
- выполните 1 чтение, чтобы
users/user_id
захватить все, даже если мне нужно всего 2 поля
Первый из них извлечет только те данные, которые мне нужны, но выполнит 2 «сетевых» вызова между серверами облачных функций и серверами баз данных реального времени, в то время как 2-й вызовет только 1.
Интересно, можно ли пренебречь вызовами между 2 двумя серверами, так как это действительно быстро или нет.
Ответ №1:
Если ни одно из полей в «полной записи» не является большим (100 КБ ), различия в производительности между вариантами, скорее всего, будут незначительными, и вам следует предпочесть более простое решение, которое, скорее всего, представляет собой единственную выборку всей записи. Технически, полная запись может потребовать большей стоимости передачи, но даже в этом нет уверенности, поскольку каждый запрос / ответ сопряжен с накладными расходами.