D1
Qué es
Imagina una hoja de cálculo con filas y columnas bien ordenadas a la que tu aplicación puede hacerle preguntas precisas, como "muéstrame todos los pedidos pagados de junio". D1 es la sin servidor de Cloudflare —ese almacén de tablas organizado y consultable— construida sobre SQLite. ("Sin servidor" significa que no hay servidores que tengas que configurar ni mantener funcionando; el proveedor se encarga de todo eso.) SQL (Structured Query Language, lenguaje de consulta estructurado) es el lenguaje estándar para hacerle preguntas a una base de datos. Creas una base de datos, la vinculas (bind) a un Worker o a un proyecto de Pages, y la consultas con SQL sencillo a través de una pequeña (Application Programming Interface, interfaz de programación de aplicaciones — el conjunto de comandos que invocas). No hay servidores que dimensionar ni pools de conexiones que gestionar: Cloudflare se encarga del almacenamiento, la replicación y el escalado, y tú pagas por las filas que lees y escribes.
Fortalezas
- SQL de verdad (dialecto SQLite) —
SELECT,JOIN, transacciones e índices conocidos. - Sin servidor: sin aprovisionamiento, sin límites de conexión, escala hasta cero.
- Integración estrecha con Workers y Pages mediante un único binding.
- La replicación de lectura coloca copias cerca de los usuarios para lecturas de baja latencia.
- Económico para cargas de trabajo típicas de aplicaciones, con un nivel gratuito utilizable.
Contrapartidas
- Semántica de SQLite: los conjuntos de datos enormes y la concurrencia de escritura muy intensa no son su punto fuerte.
- Los límites de tamaño por base de datos implican que los datos muy grandes pueden necesitar sharding (dividir en varias bases de datos) o R2 (el almacenamiento de archivos de Cloudflare).
- Es más nuevo que Postgres/MySQL, así que las herramientas y el ecosistema todavía están madurando.
- Se accede mejor desde el ; usarlo desde fuera de Cloudflare es menos natural.
Cuándo usarlo
Elige D1 para los datos de aplicación en un proyecto alojado en Cloudflare: registros de usuarios, contenido, ajustes, metadatos de — cualquier cosa que encaje en un modelo relacional y viva junto a tu aplicación de Workers o Pages.
Encaje con vibe coding
D1 es una opción predeterminada sólida cuando un ya está construyendo sobre Workers, porque la base de datos, el esquema y las consultas viven todos en el mismo proyecto. Pídele al agente que mantenga las migraciones en archivos .sql versionados y que las aplique con Wrangler, para que el esquema sea reproducible. El binding convierte la consulta en una sola línea dentro del handler.
# wrangler.toml
[[d1_databases]]
binding = "DB"
database_name = "app-db"
database_id = "your-d1-id"
# Create a DB and run a migration
npx wrangler d1 create app-db
npx wrangler d1 execute app-db --file=./schema.sql