← Cloudflare D1 / d1 / platform
Лимиты
| Возможность | Лимит |
|---|---|
| Базы данных на аккаунт | 50,000 (Workers Paid) 1 / 10 (Free) |
| Максимальный размер базы данных | 10 ГБ (Workers Paid) / 500 МБ (Free) |
| Максимальный объём хранилища на аккаунт | 1 ТБ (Workers Paid) 2 / 5 ГБ (Free) |
| Time Travel продолжительность (восстановление на определённый момент времени) | 30 дней (Workers Paid) / 7 дней (Free) |
| Максимальное количество операций восстановления Time Travel | 10 восстановлений за 10 минут (на базу данных) |
| Запросы на один вызов Worker (чтение ограничения на подзапросы) | 1000 (Workers Paid) / 50 (Free) |
| Максимальное количество столбцов в таблице | 100 |
| Максимальное количество строк в таблице | Неограниченно (без учёта лимитов хранилища на базу данных) |
Максимальная строка, BLOB или размер строки таблицы |
2,000,000 байт (2 МБ) |
| Максимальная длина SQL-оператора | 100,000 байт (100 КБ) |
| Максимальное количество привязанных параметров в запросе | 100 |
| Максимальное количество аргументов SQL-функции | 32 |
Максимальное количество символов (байт) в LIKE или GLOB шаблон |
50 байт |
| Максимальное количество привязок на скрипт Workers | Приблизительно 5,000 3 |
| Максимальная длительность SQL-запроса | 30 секунд 4 |
Максимальный размер импортируемого файла (d1 execute) размер |
5 ГБ 5 |
Cloudflare также предлагает другие решения для хранения данных, например Workers KV, Durable Objects, а также R2. У каждого продукта свои преимущества и ограничения. См. Выберите продукт для работы с данными или хранилищем чтобы определить, какой вариант хранения подходит для вашей задачи.
Часто задаваемые вопросы
Часто задаваемые вопросы, связанные с лимитами D1:
Какую нагрузку способна выдержать база данных D1?
D1 предназначен для горизонтального масштабирования за счёт множества небольших (10 ГБ) баз данных, например баз данных на пользователя, на арендатора или на отдельную сущность. D1 позволяет создавать приложения с тысячами баз данных без дополнительных затрат, поскольку цена определяется только затратами на запросы и хранилище.
Хранилище
Каждая база данных D1 может хранить до 10 ГБ данных.
Параллелизм и пропускная способность
Каждая отдельная база данных D1 по своей природе однопоточная и обрабатывает запросы по одному.
Максимальная пропускная способность напрямую зависит от длительности ваших запросов.
- Если средний запрос выполняется за 1 мс, можно выполнять примерно 1,000 запросов в секунду.
- Если средний запрос выполняется за 100 мс, можно выполнять 10 запросов в секунду.
Если база данных получает слишком много одновременных запросов, она сначала пытается поставить их в очередь. Если очередь переполняется, база данных возвращает ошибка "overloaded".
В основе каждой отдельной базы данных D1 лежит один Durable Object. При использовании Репликация для чтения D1 ↗ каждый экземпляр реплики представляет собой отдельный Durable Object, и эти рекомендации применяются к каждому экземпляру реплики независимо.
Производительность запросов
Производительность запросов служит важнейшим фактором, определяющим пропускную способность. Ниже приведён примерный ориентир:
- Запросы на чтение, такие как
SELECT name FROM users WHERE id = ?с подходящим индексом поidзаймёт менее одной миллисекунды по времени выполнения SQL. - Запросы на запись вроде
INSERTилиUPDATEмогут занимать несколько миллисекунд по времени выполнения SQL и зависят от количества записанных строк. Запись должна надёжно сохраняться в нескольких местах, подробнее см. на как D1 хранит данные под капотом ↗. - Миграции данных, такие как масштабная
UPDATEилиDELETEзатрагивающие миллионы строк, необходимо выполнять пакетами. Один запрос, который пытается изменить сотни тысяч строк или сотни МБ данных за раз, превысит лимиты выполнения. Разбейте работу на более мелкие части (например, обрабатывайте по 1 000 строк за раз), чтобы уложиться в лимиты платформы.
Чтобы запросы выполнялись быстро и эффективно, используйте подходящие индексы в вашей SQL-схеме.
CPU и память
Операции с базой данных D1, включая выполнение запросов и сериализацию результатов, выполняются в Ограничения CPU и памяти платформы Workers.
Превышение этих лимитов или достижение других лимитов платформы приведёт к ошибкам. См. список ошибок D1 с дополнительными подробностями.
Сколько одновременных подключений к D1 может открыть Worker?
Для каждого вызова Worker можно открыть одновременно до шести подключений (к D1).
Дополнительную информацию об одновременных соединениях Worker см. в Одновременные открытые соединения.
Сноски
-
Максимальное количество баз данных на аккаунт можно увеличить по запросу на тарифах Workers Paid и Enterprise, с поддержкой от миллионов до десятков миллионов баз данных (или более) на аккаунт. Инструкции по увеличению лимитов приведены на этой странице. ↩
-
Максимальный объём хранилища на аккаунт можно увеличить по запросу на тарифах Workers Paid и Enterprise. Инструкции по увеличению лимитов приведены на этой странице. ↩
-
Один скрипт Worker может иметь до 1 MB метаданных скрипта. Привязка определяется как привязка к ресурсу, например к базе данных D1, пространству имён KV, переменная окружения, или секрет. Каждая привязка ресурса занимает примерно 150 байт, однако размер переменных окружения и секретов определяется размером предоставленного вами значения. Без учёта переменных окружения к одному скрипту Worker можно привязать до ~5000 баз данных D1. ↩
-
Запросы к Cloudflare API должны выполняться не более 30 секунд, поэтому это ограничение по времени распространяется и на весь пакетный вызов целиком. ↩
-
Импортируемый файл загружается в R2. См. Лимит загрузки R2. ↩