Примеры цен

Это относится только к версии Cloud Firestore Enterprise.

На этой странице приведены примеры расчета единиц выставления счетов в некоторых наиболее распространенных сценариях. Обратите внимание, что каждый запрос может отличаться по обрабатываемым данным в зависимости от таких факторов, как план запроса, структура данных и доступные индексы.

Мы рекомендуем использовать функцию Query Explain , чтобы лучше понять стоимость и производительность ваших конкретных запросов.

Операции чтения

Большинство операций чтения включают либо точечное чтение конкретного документа, либо сканирование диапазона данных на основе идентификатора. Операции чтения потребляют единицы чтения. Единицы чтения рассчитываются в виде блоков по 4 КиБ. См. следующие примеры.

Точка читает

Пример выставления счетов за чтение точек:

  • Точечное чтение одного документа размером 1 КиБ. Потребляет: 1 единицу чтения.
  • Точечное чтение одного документа размером 4 КиБ. Потребляет: 1 единицу чтения.
  • Точечное чтение одного документа размером 1 МиБ. Потребляет: 256 единиц чтения.
  • Точечное чтение 100 документов, по 1 КиБ каждый. Потребляет: 100 единиц чтения.

Сканирование

Приведенные ниже примеры описывают сценарии сканирования документов или индексирования записей.

Сканирование документов

  • Запрос, сканирующий 100 документов размером 1 КиБ каждый. Потребляет: 25 единиц чтения.

Индексы сканирования

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

  • Запрос, сканирующий 100 записей индекса, каждая по 1 КиБ. Потребляет: 25 единиц чтения.
  • Запрос, сканирующий 100 записей индекса, каждая по 128 байт. Потребляет: 4 единицы чтения.

Минимальный размер документа или записи в индексе

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

  • Подсчитайте количество документов в коллекции. Запрос сканирует 1000 элементов в коллекции. Потребляет: 8 единиц чтения.

Сочетание сканирования и точечного считывания

Для выполнения определенной операции многие запросы сочетают сканирование и точечное чтение.

  • Запрос сканирует 128 записей индекса, каждая по 256 байт, и выполняет точечное чтение 128 документов, каждый по 4 КиБ. Потребляет: 136 единиц чтения, состоящих из:
    • 128 единиц считывания для точечного считывания
    • 8 блоков чтения для сканирования индекса

Запрос поясняет

Функция Query Explain помогает понять, как база данных выполняет ваши запросы. Предоставленные сведения могут помочь оптимизировать ваши запросы.

При использовании функции Query Explain взимаются следующие сборы:

  • Укажите, какой запрос выполняет запрос: применяется стоимость запроса.
  • Запрос с опцией "Определить план выполнения". Потребляет: 1 единицу чтения (минимальная стоимость запроса).

операции записи

Операции записи (создание, обновление и удаление) оплачиваются исходя из размера создаваемых, изменяемых или удаляемых документов и индексов. Операции записи потребляют единицы записи. Единицы записи рассчитываются траншами по 1 КиБ.

Простые операции записи, такие как обновление по идентификатору документа, влекут за собой только стоимость записи. Операции записи, требующие запроса для выполнения операции, дополнительно влекут за собой стоимость чтения, связанную с запросом.

См. следующие примеры.

Создает

  • Создаёт новый документ размером 10 КБ без индексов. Потребляет: 10 единиц записи.
  • Создаёт документ размером 1 КиБ с одной индексной записью размером 256 байт в коллекции. Потребляет: 2 единицы записи.

Обновления

  • Найти документ размером 10 КБ по идентификатору документа и обновить его, не используя индексы в коллекции. Потребляет: 10 единиц записи.
  • Найти документ размером 1 КиБ по идентификатору документа и обновить 1 поле одной записью индекса размером 256 байт. Потребляет: 3 единицы записи. Примечание: Обновление записи индекса в этой ситуации потребляет 2 единицы записи — одну для удаления и одну для повторного создания записи индекса.
  • Находит документ размером 1 КиБ по идентификатору документа и ничего не обновляет (никаких изменений). Потребляет: 1 единицу записи (минимальная стоимость записи).
  • Выполните запрос ко всем документам размером 1 КиБ в коллекции, которая сканирует 1000 документов, и вставьте новое поле размером 256 байт без индексов в коллекции: 1000 единиц чтения и 1000 единиц записи.

Удаляет

  • Удаление документа размером 1 КиБ, имеющего 1 индекс в коллекции. Потребляет: 2 единицы записи.
  • Удалить документ размером 1 КиБ, для которого отсутствуют индексы в коллекции. Потребляет: 1 единицу записи.

Создание индексов

При создании индекса взимается плата за записи индекса, созданные или измененные в процессе построения. Эти расходы возникают всякий раз, когда добавляется или удаляется определение индекса. Плата за записи индекса взимается аналогично плате за запись, составляя 1 единицу записи на 1 КиБ.

  • Создайте новый индекс для коллекции, содержащей 500 документов; размер каждой записи индекса составляет 1 КиБ. Потребует 500 единиц записи.
  • Удаление существующего индекса для коллекции, содержащей 500 документов; размер каждой удаляемой записи в индексе составляет 1 КБ. Потребляет 500 единиц записи.