¿Cuándo no deberías usar DynamoDB?

Descarta DynamoDB cuando tu carga de trabajo sea analítica o tus patrones de acceso sean desconocidos. DynamoDB está hecho a propósito para cargas operativas (OLTP) con patrones de acceso conocidos y basados en claves — no tiene joins ni funciones de agregación, y las consultas ad hoc acaban recurriendo a costosos scans de tabla completa. Para informes OLAP o necesidades relacionales cambiantes, elige otro motor.

Malos encajes

  • Analítica e informes ad hoc (OLAP) — no hay GROUP BY, SUM ni AVG; cada resumen es un scan o un agregado precalculado que mantienes tú. Mira la guía de agregación para los rodeos.
  • Esquemas relacionales normalizados — DynamoDB omite deliberadamente el operador JOIN; la propia recomendación de AWS es desnormalizar.
  • Patrones de acceso desconocidos o que cambian rápido — diseñas las claves en torno a las consultas. Cuando aún no puedes nombrar las consultas, cada una nueva arriesga un rediseño de la tabla o un scan completo.
  • Búsqueda de texto completo y consultas ricas — mira ¿DynamoDB admite búsqueda de texto completo?; la búsqueda pertenece a un índice de búsqueda.
  • Objetos grandes — los Items están limitados a 400 KB; el contenido multimedia y los documentos pertenecen a S3, con un puntero en la tabla.

El resumen, rechazado y luego con precio

El desajuste analítico no es cuestión de gustos. Pídele a DynamoDB un recuento agrupado en PartiQL y la sentencia se rechaza antes de leer nada:

SELECT status, COUNT(*) FROM "orders" GROUP BY status
ValidationException: Unsupported clause: GROUP BY
HTTP 400

Quita la agrupación y pide el total a secas, y falla un paso antes, en el parser:

SELECT COUNT(*) FROM "orders"
ValidationException: Unexpected path component at 1:8:5
HTTP 400

COUNT no es una función en este dialecto, así que el parser lo lee como una ruta de atributo y se rinde en el paréntesis.

Eso deja el Scan que escribes tú, y tiene un precio. Leer una tabla de 50 GB de principio a fin cuesta 6.553.600 unidades de lectura con consistencia eventual, que es el tamaño agregado escaneado en unidades de 4 KB, dividido a la mitad. En us-east-1 bajo demanda eso son 0,82 $.

Refresca esa única cifra cada hora y son $598 al mes. Mantener el contador según escribes, o exportar a un almacén analítico, es la respuesta más barata, y ambas son trabajo que DynamoDB no está haciendo por ti.

Dónde brilla

La lista inversa es exactamente el punto fuerte de DynamoDB: cargas operativas de gran volumen con lecturas y escrituras predecibles y basadas en claves que deben mantenerse en milisegundos de un dígito a cualquier escala — carritos, sesiones, perfiles, estado de juego, eventos de IoT. La guía sobre cuándo usar DynamoDB plantea el caso a favor.

Profundiza

Si estás dudando, lee a continuación cuándo usar DynamoDB. ¿Ya estás en DynamoDB y echas de menos SQL? DynoTable ejecuta JOIN y GROUP BY contra tablas en vivo desde el escritorio — y la calculadora de precios te dice lo que costaría tu carga de trabajo antes de comprometerte.

Referencias

Verificado por última vez el 2026-07-13 contra la documentación oficial de AWS enlazada arriba. La cifra de 400 KB se confirmó de nuevo el 2026-07-28; AWS la ha movido de la página de cuotas de servicio a Constraints.html.

Reproducido el 2026-07-28 contra DynamoDB Local 3.3.0 mediante @aws-sdk/client-dynamodb 3.1095.0 sobre Node v24.18.0; ambos mensajes de ValidationException son literales. El coste del Scan se calcula a partir de las tarifas de us-east-1 de nuestra tabla de precios de AWS sincronizada.

Trabaja con DynamoDB sin la Consola

Un cliente de escritorio rápido para DynamoDB que ejecuta el SQL real que DynamoDB no puede — JOINs, GROUP BY, agregaciones — con edición visual y un agente de IA con tus propias claves de Bedrock.

Prueba gratuita de 30 días, sin tarjeta — después, el plan Free sin límite de tiempo.