No hay un precio comparable entre cinco bases de datos que cobran cosas distintas (cómputo, plan fijo o filas): con una carga mediana, Cloudflare D1 sale en $17,25 al mes, Neon en $18,28, Turso en $24,92 y Supabase en $25, pero los límites de cada una cambian la decisión.
1. Los planes de entrada de cinco bases de datos#
Las bases de datos administradas más comentadas de 2026 no cobran por lo mismo: Neon por cómputo y almacenamiento, Supabase por plan, PlanetScale por tamaño de clúster, y Turso y Cloudflare D1 por filas leídas y escritas. La tabla reúne el plan gratuito, la entrada de pago y el modelo de cobro de cada una, según su página oficial leída el 17 de octubre de 2026.
| Proveedor | Motor | Plan gratuito | Entrada de pago | Cómo cobra |
|---|---|---|---|---|
| Neon | PostgreSQL | Sí, permanente: 100 CU-h y 1 GB por proyecto | Sin cuota fija: $0,106 por CU-hora (Launch) | Por uso: cómputo por hora y $0,35 por GB-mes |
| Supabase | PostgreSQL | Sí: 500 MB y se pausa tras 1 semana | Desde $25 al mes (Pro) | Plan más cómputo, disco y salida de datos |
| PlanetScale | PostgreSQL y Vitess (compatible con MySQL) | No | Desde $5 al mes (Postgres de un nodo, PS-5) | Por tamaño de clúster |
| Turso | Compatible con SQLite | Sí: 5 GB y 500 millones de lecturas | $4,99 al mes (Developer) | Plan más filas leídas y escritas y almacenamiento |
| Cloudflare D1 | SQLite | Sí, con topes diarios: 5 millones de lecturas y 100.000 escrituras | Mínimo de $5 al mes (Workers Paid) | Filas leídas y escritas más almacenamiento |
PlanetScale ya no ofrece un plan gratuito: su documentación indica que todas las bases requieren una suscripción de pago, con el Postgres de un nodo desde $5 al mes. Todas las cifras están en dólares y excluyen impuestos.
Para profundizarPrecios de Supabase en 2026: planes Free y Pro y cuánto cuesta de verdad
Documentación: Neon: precios ↗ · Supabase: precios y planes ↗ · PlanetScale: precios ↗ · PlanetScale: planes ↗ · Turso: precios ↗
2. Restauración, ramas y límites#
Más allá del precio, la restauración a un punto en el tiempo y la cantidad de ramas o bases marcan la diferencia en el trabajo diario. La tabla resume lo que publica cada proveedor.
| Proveedor | Restauración a un punto en el tiempo | Ramas o bases de datos |
|---|---|---|
| Neon | 6 horas (Free), hasta 7 días (Launch), hasta 30 días (Scale) | 10 ramas por proyecto (Free y Launch), 25 (Scale); extra a $1,50 por rama-mes |
| Supabase | Respaldos diarios de 7 días en Pro; recuperación a un punto en el tiempo como complemento de $100 al mes | 2 proyectos activos en Free |
| Turso | De 1 día (Free) a 90 días (Pro) | 100 bases en Free; sin límite en los planes de pago |
| Cloudflare D1 | Time Travel: 7 días (Free) y 30 días (Paid) | Las bases dependen de los límites de Workers |
Documentación: Cloudflare: precios de D1 ↗ · Cloudflare: Time Travel de D1 ↗
3. Tres cargas calculadas#
Para comparar modelos de cobro distintos, el código calcula el costo mensual de tres cargas en cuatro de las cinco bases. PlanetScale queda fuera porque cobra por tamaño de clúster y su precio depende de una configuración que no se puede reducir a filas. En Neon se supone un promedio de uso de cómputo (0,2 CU en las dos primeras cargas y 0,4 CU en la tercera, 730 horas al mes); la escala a cero lo bajaría.
TURSO = { # plan: (base, GB incl., lecturas incl. (M), escrituras incl. (M), USD/GB, USD por 1.000 M lecturas, USD por M escrituras)
"Free": (0.00, 5, 500, 10, None, None, None),
"Developer": (4.99, 9, 2_500, 25, 0.75, 1.00, 1.00),
"Scaler": (24.92, 24, 100_000, 100, 0.50, 0.80, 0.80),
"Pro": (416.58, 50, 250_000, 250, 0.45, 0.75, 0.75),
}
def turso(gb, lecturas, escrituras):
mejor = None
for plan, (base, gb_inc, lec_inc, esc_inc, r_gb, r_lec, r_esc) in TURSO.items():
if r_gb is None:
if gb > gb_inc or lecturas > lec_inc or escrituras > esc_inc:
continue
total = base
else:
total = base + max(0, gb - gb_inc) * r_gb + max(0, lecturas - lec_inc) / 1_000 * r_lec + max(0, escrituras - esc_inc) * r_esc
if mejor is None or total < mejor[1]:
mejor = (plan, total)
return mejor[1]
def d1(gb, lecturas, escrituras): # Workers Paid: $5 mínimo; 25.000 M lecturas y 50 M escrituras incluidas
return 5 + max(0, gb - 5) * 0.75 + max(0, lecturas - 25_000) * 0.001 + max(0, escrituras - 50) * 1.00
def supabase(gb): # Pro: $25, 8 GB incluidos, cómputo Micro cubierto por el crédito
return 25 + max(0, gb - 8) * 0.125
def neon(gb, cu_promedio): # Launch: $0,106 por CU-hora (730 h al mes) y $0,35 por GB-mes
return 0.106 * cu_promedio * 730 + 0.35 * gb
cargas = [("Pequeña", 2, 200, 5, 0.2), ("Mediana", 8, 4_000, 60, 0.2), ("Lectura intensiva", 10, 20_000, 20, 0.4)]
for nombre, gb, lecturas, escrituras, cu in cargas:
print(f"{nombre}: D1 {d1(gb, lecturas, escrituras):.2f} | Turso {turso(gb, lecturas, escrituras):.2f} | Supabase {supabase(gb):.2f} | Neon {neon(gb, cu):.2f}")| Carga | Cloudflare D1 | Turso (mejor plan) | Supabase Pro | Neon Launch |
|---|---|---|---|---|
| Pequeña (2 GB · 200 M lecturas · 5 M escrituras) | $5 | $0 | $25 | $16,18 |
| Mediana (8 GB · 4.000 M lecturas · 60 M escrituras) | $17,25 | $24,92 | $25 | $18,28 |
| Lectura intensiva (10 GB · 20.000 M lecturas · 20 M escrituras) | $8,75 | $23,24 | $25,25 | $34,45 |
El patrón es claro. Con cargas pequeñas, Turso Free no cuesta nada y Cloudflare D1 empieza en $5. En la carga mediana, D1 ($17,25) y Neon ($18,28) quedan por debajo de los $25 de Supabase, con Turso en $24,92. En la de lectura intensiva, D1 ($8,75) y Turso ($23,24) siguen por debajo, mientras Neon sube a $34,45 porque su cómputo pesa más que las filas; D1 domina cuando las lecturas son muchas porque cobra $0,001 por millón de filas leídas. Pero D1 y Turso son SQLite y exigen un modelo de datos distinto al de PostgreSQL; revisa también los límites por base de D1 en su página.
Para profundizarTurso vs Supabase: precios, modelo de cobro y cuál elegir
Documentación: Cloudflare: precios de Workers ↗
4. Cuál elegir según tu necesidad#
No hay un ganador general; la tabla traduce cada necesidad en un criterio y un candidato.
| Si necesitas… | Mira primero | Suele encajar |
|---|---|---|
| PostgreSQL con extensiones, autenticación y funciones incluidas | El motor y lo que viene incluido | Supabase o Neon |
| Pagar solo por lo que usas, con escala a cero | El cómputo por hora y el tiempo de inactividad | Neon |
| Muchas bases pequeñas o lecturas muy altas por fila | El precio por millón de filas | Turso o Cloudflare D1 |
| Ejecutar la base junto a código en Cloudflare Workers | La integración con Workers | Cloudflare D1 |
| MySQL (Vitess) o PostgreSQL en un clúster con alta disponibilidad | El tamaño de clúster y la alta disponibilidad | PlanetScale |
Antes de decidir, estima tus filas leídas y escritas al mes, el tamaño de tus datos y si tu aplicación necesita extensiones de PostgreSQL. Esos tres datos eliminan la mitad de las opciones.
Para profundizarPostgreSQL: encuentra el índice correcto con EXPLAIN
5. Lo que estos precios no incluyen#
Las cifras de esta guía son las del plan base de cada proveedor. Varias partidas se cobran aparte y pueden mover la factura.
- Salida de datos (egress): Neon incluye 500 GB por proyecto en Launch y luego cobra $0,10 por GB; Supabase incluye 250 GB en Pro.
- Ramas adicionales: Neon cobra $1,50 por rama-mes por encima de las incluidas.
- Respaldos y recuperación: en Supabase, la recuperación a un punto en el tiempo es un complemento de $100 al mes por cada 7 días de retención.
- Soporte y seguridad: SSO, soporte prioritario y cumplimiento suelen costar más en planes superiores.
6. Mantén tus cifras al día#
Los planes de bases de datos cambian a menudo: PlanetScale retiró su plan gratuito y Supabase, Neon y Turso ajustan cuotas. Las cifras son las de las páginas oficiales el 17 de octubre de 2026.
- Anota la fecha de lectura de cada tarifa.
- Mide tus filas leídas y escritas reales y el tamaño de tus datos durante un mes.
- Compara más opciones en el comparador de bases de datos de Codifly.
Fuentes y alcance
Documentación consultada el 17 de octubre de 2026. Los ejemplos y criterios de decisión son propuestas editoriales; adáptalos al contrato de tu aplicación y valídalos en tu entorno de pruebas autorizado.