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.