advanced
D1
Serverless SQLite-подобное хранилище для edge-приложений: миграции, лимиты, репликация и задержка запросов.
D1 — serverless SQLite из Workers: метаданные на edge, feature flags, небольшой admin config или индексы сессий, но не замена PostgreSQL origin-масштаба. Миграции через Wrangler; запросы — prepared statements с binding parameters.
const { results } = await env.DB.prepare(
'SELECT id, slug FROM posts WHERE published = ? LIMIT ?',
)
.bind(1, 20)
.all();
| Область лимита | Ответ в дизайне | |----------------|-----------------| | Size и QPS | Узкие таблицы; hot reads в KV | | Replication | Latency чтения vs primary region | | Transactions | Только небольшие atomic updates | | Joins на edge | Денormalized keys на hot paths |
D1 дополняет стек: авторитетные user data — в RDS/PlanetScale, в D1 — edge-readable проекции.
На интервью: D1 vs KV vs Durable Objects vs origin SQL, workflow миграций, consistency и когда SQLite на edge — неверный выбор.
Типовые ошибки: большие blobs; high-write chat или ledger; ожидание фич PostgreSQL; отсутствие backup/restore drill.
Компромисс — низкая latency SQL на edge против лимитов SQLite, replication lag и зрелости ops vs managed Postgres.
Чеклист:
- Access patterns до проектирования схемы.
- Параметризуйте весь SQL в Workers.
- Кэшируйте read-heavy config в KV при необходимости.
- Финансовые authoritative data — на origin DB.