INTEGRITY Документация

Цены

Тарификация D1 основана на:

Метрики тарификации

Workers Free Workers Paid
Прочитанные строки 5 миллионов / день Первые 25 миллиардов в месяц включены + $0.001 / миллион строк
Записанные строки 100,000 / день Первые 50 миллионов в месяц включены + $1.00 / миллион строк
Хранилище (за ГБ хранения) 5 GB (всего) Первые 5 ГБ включены + $0.75 / ГБ-мес

Определения

  1. Показатель прочитанных строк отражает, сколько строк считывает (сканирует) запрос, независимо от размера каждой строки. Например, если у вас есть таблица из 5000 строк и вы выполняете SELECT * FROM table как полное сканирование таблицы, это будет засчитано как 5,000 прочитанных строк. Запрос, который фильтрует по неиндексированный столбец может вернуть вашему Worker меньше строк, но при этом всё равно потребуется прочитать (просканировать) больше строк, чтобы определить, какое подмножество вернуть.
  2. Показатель записанных строк отражает, сколько строк было записано в базу данных D1. Операции записи включают INSERT, UPDATE, а также DELETE. Каждая из этих операций учитывается в количестве записанных строк. Запрос, который INSERT 10 строк в users таблицу засчитывается как 10 записанных строк.
  3. Операции DDL (например, CREATE, ALTER, а также DROP) используются для определения или изменения структуры базы данных. Они могут учитываться и как строки чтения, и как строки записи. Отслеживайте использование точно с помощью доступных инструментов (объект meta, GraphQL Analytics API, или Панель управления Cloudflare).
  4. Размер строки и количество столбцов в ней не влияют на подсчёт строк. Строка размером 1 КБ и строка размером 100 КБ учитываются как одна строка в обоих случаях.
  5. Определение индексы для ваших таблиц уменьшает количество строк, читаемых запросом, при фильтрации по этому индексированному полю. Например, если users таблица имеет индекс по столбцу с меткой времени created_at, запрос SELECT * FROM users WHERE created_at > ?1 потребуется прочитать только часть таблицы.
  6. Индексы добавляют дополнительную записанную строку, если запись включает индексированный столбец: записываются две строки, одна в саму таблицу, а вторая в индекс. Прирост производительности от индекса и снижение числа считанных строк почти всегда компенсируют эту дополнительную запись.
  7. Объём хранилища измеряется в гигабайтах, сохранённых за месяц, и учитывает суммарный объём всех баз данных вашего аккаунта. В используемый объём хранилища входят как таблицы, так и индексы.
  8. Лимиты плана Free сбрасываются ежедневно в 00:00 UTC. Лимиты, включённые в месячную подписку, сбрасываются в зависимости от даты продления вашей ежемесячной подписки, которая определяется днём, когда вы впервые оформили подписку.
  9. За передачу данных (egress) или пропускную способность (bandwidth) при доступе к данным из D1 плата не взимается.
  10. Репликация для чтения не взимает дополнительную плату за реплики для чтения. Вы платите по тем же тарифам использования, основанным на rows_read и rows_written вашими запросами.

Часто задаваемые вопросы

Часто задаваемые вопросы, связанные с тарификацией D1:

Останется ли у D1 тариф Free навсегда?

Да, план Workers Free всегда будет включать возможность бесплатно прототипировать и экспериментировать с D1.

Что произойдет, если превышены дневные лимиты на чтение и запись или общий лимит хранилища на тарифе Free?

Когда аккаунт достигает дневных лимитов на чтение и (или) запись, выполнять запросы к D1 становится невозможно. D1 API возвращает клиенту ошибки о превышении дневных лимитов. После достижения лимита включенного хранилища необходимо удалить неиспользуемые базы данных или очистить устаревшие данные, прежде чем добавлять новые данные, создавать или изменять таблицы либо создавать индексы и триггеры.

Переход на платный план Workers снимает эти ограничения, как правило, в течение нескольких минут.

Что произойдет, если превышены включенные в месяц лимиты чтения, записи и (или) хранилища на платном тарифе?

Дополнительные операции чтения, записи и хранение данных оплачиваются согласно метрики тарификации D1.

Как оценить будущий счет?

Каждый запрос возвращает meta объект, содержащий общее количество прочитанных строк (rows_read) и записанных строк (rows_written) этим запросом. Например, запрос, который выполняет полное сканирование таблицы (например, SELECT * FROM users) из таблицы с 5000 строками вернёт rows_read значение 5000:

"meta": {
  "duration": 0.20472300052642825,
  "size_after": 45137920,
  "rows_read": 5000,
  "rows_written": 0
}

Они также включены в D1 Панель управления Cloudflare и Аналитическое API, что позволяет соотносить объёмы чтения и записи с конкретными базами данных, периодами времени или и тем и другим.

Взимает ли D1 плату за передачу данных / исходящий трафик?

Нет.

Взимает ли D1 дополнительную плату за дополнительные вычислительные ресурсы?

Сам D1 не взимает плату за дополнительные вычисления. Workers, которые выполняют запросы к D1 и обрабатывают результаты, например сериализуют результаты в JSON или выполняют запросы, тарифицируются за Тарифы Workers, в дополнение к использованию, специфичному для D1.

Учитываются ли как платное использование запросы, которые я выполняю из панели управления или Wrangler (CLI)?

Да, любые запросы к базе данных, включая вставку (INSERT) существующих данных в новую базу данных, сканирование таблиц (SELECT * FROM table), или создание индексов учитывается как чтение или запись.

Можно ли использовать индекс, чтобы уменьшить количество строк, читаемых запросом?

Да, вы можете использовать индекс, чтобы сократить количество строк, считываемых запросом. Создание индексов для наиболее часто запрашиваемых таблиц и фильтруемых столбцов сокращает объём сканируемых данных и одновременно повышает производительность запросов. Если у вас нагрузка с преобладанием чтения (самый распространённый случай), это особенно полезно. Запись в столбцы, на которые ссылается индекс, добавляет как минимум одну (1) дополнительную записанную строку из за обновления индекса, но это обычно компенсируется сокращением количества прочитанных строк благодаря преимуществам индекса.

Учитывается ли в объёме моего хранилища только что созданная база данных и/или пустая таблица без строк?

Да, но по минимуму. Пустая таблица занимает не менее нескольких килобайт, в зависимости от количества столбцов (ширины таблицы). Пустая база данных занимает примерно 12 КБ места.