Cómo obtener el tamaño y el número de elementos de una tabla de DynamoDB
No hay un SELECT COUNT(*) que puedas apuntar de forma barata a una tabla de
DynamoDB. DynamoDB te da dos respuestas muy distintas a "¿cómo de grande es
esta tabla?": una estimación gratuita que puede llevar hasta seis horas de
retraso, y un conteo exacto que cuesta una lectura completa de la tabla. La
mayor parte de la confusión de "¿por qué mi número de elementos está mal?" es
elegir una esperando el comportamiento de la otra.
¿Cómo obtengo el número de elementos y el tamaño de una tabla de DynamoDB?
Llama a DescribeTable: devuelve ItemCount y TableSizeBytes gratis, pero
"DynamoDB actualiza este valor aproximadamente cada seis horas. Los cambios
recientes pueden no estar reflejados en este valor"
(referencia de la API de AWS).
Para un número exacto, ejecuta un Scan con --select COUNT — devuelve
solo el conteo, pero lee (y factura) cada elemento. Una GUI como
DynoTable muestra las estimaciones en cada tabla y puede calcular
conteos exactos bajo demanda.
| Quieres | Usa | Coste | Frescura |
|---|---|---|---|
| Conteo + tamaño aproximados, gratis | DescribeTable | ninguno (llamada de metadatos) | ~6 h de retraso |
| Conteo total exacto | Scan con Select COUNT | lee la tabla entera | en vivo |
| Conteo exacto para una clave | Query con Select COUNT | lee los elementos coincidentes | en vivo |
| Conteo de un subconjunto filtrado | Scan/Query + filtro + COUNT | lee todo lo escaneado | en vivo |
Método 1: DescribeTable (gratis, ~6 h de retraso)
DescribeTable es una consulta de metadatos — no lee ningún elemento, así que
no consume capacidad de lectura, y lleva los dos números que buscas:
aws dynamodb describe-table --table-name Orders \
--query 'Table.[ItemCount, TableSizeBytes]'Ambos vienen con la misma advertencia, literal de la
referencia de la API:
"DynamoDB actualiza este valor aproximadamente cada seis horas. Los cambios
recientes pueden no estar reflejados en este valor." Así que una tabla que
acabas de cargar en masa puede reportar ItemCount: 0 durante horas — el
número no está mal, es una instantánea.
La misma respuesta también lleva cifras por índice: cada
GSI y LSI reporta su propio ItemCount e
IndexSizeBytes con la misma cadencia de seis horas. Comparar el número de
elementos de un contra el de la tabla es una
buena comprobación de salud gratuita — te dice cuántos elementos llevan
realmente la clave del índice.
Método 2: conteo exacto con Scan + Select COUNT
Cuando "aproximadamente, según esta mañana" no es suficiente, cuenta de verdad:
aws dynamodb scan --table-name Orders --select COUNTDatos que debes conocer antes de ejecutarlo, todos de la referencia de la API de Scan:
COUNT"devuelve el número de elementos coincidentes, en lugar de los propios elementos" — menos tráfico de red, pero "esto usa la misma cantidad de unidades de capacidad de lectura que obtener los elementos". Un conteo exacto de una tabla de 100 GB es una lectura de 100 GB en tu factura.- Una única petición sigue deteniéndose en 1 MB de datos escaneados; el
Countde la respuesta "solo devuelve el conteo de elementos específico de una única petición de scan". La CLI sigue laLastEvaluatedKeyy suma las páginas por ti; en código de SDK iteras y sumas — consulta paginación. - En una tabla grande, reparte el trabajo con un
scan paralelo (
--segment/--total-segments) y suma los conteos por segmento.
Contar un subconjunto
- Elementos bajo una clave de partición:
Querycon--select COUNT— lee solo los elementos de esa clave, así que es tan barato como pequeños sean los datos. Esta es la forma correcta de contar una . - Elementos que cumplen un filtro: añade una
FilterExpression— pero recuerda que el conteo que se te factura esScannedCount, noCount: DynamoDB filtra después de leer, así que "contar los pedidos archivados" mediante un scan filtrado paga por todos los pedidos. UnScannedCountalto junto a unCountpequeño es la firma de un filtro que quiere ser un GSI — consulta estrategias de filtrado.
Para preguntas más ricas — conteos por estado, sumas, medias — DynamoDB no
tiene GROUP BY en absoluto; las soluciones viven en
contar, sumar y agregar.
Tamaño de tabla y número de elementos en DynoTable
DynoTable pone ambas respuestas donde ya estás mirando. Cada tabla abierta tiene un botón de Estadísticas (el icono de gráfico de barras) en la barra de herramientas de la pestaña; el panel muestra:
- Clave principal e índices secundarios — la forma de la tabla de un vistazo.
- Elementos · Tamaño · Elemento medio — las estimaciones del propio
DescribeTablede DynamoDB, etiquetadas como estimaciones, con la advertencia de las seis horas a un hover de distancia. - Indexar tabla — un scan de muestreo con un clic que descubre cada
atributo que tus elementos realmente llevan (incluidas rutas anidadas como
commonData.status), con progreso en vivo. Alimenta el autocompletado de campos y una exportación inferida de TypeScript / Zod / JSON Schema, e incurre en costes de lectura normales de DynamoDB — la app lo dice por adelantado.

Y para los números exactos, el asistente de IA integrado calcula conteos, sumas y desgloses por grupo sobre la tabla entera bajo petición — lee cada elemento coincidente en lugar de muestrear una página, y pregunta antes de ejecutar cualquier cosa que cueste capacidad de lectura.
Preguntas frecuentes
¿Por qué mi número de elementos de DynamoDB está mal?
No está mal — está desactualizado. ItemCount (y TableSizeBytes) se
refrescan "aproximadamente cada seis horas", así que las escrituras y
eliminaciones recientes aún no se reflejan. La vista general de tabla de la
consola muestra los mismos números de DescribeTable, con el mismo retraso.
¿Cómo cuento filas en DynamoDB de forma exacta?
aws dynamodb scan --table-name X --select COUNT — la CLI recorre las páginas
de toda la tabla y suma los conteos por página. Es exacto pero factura la misma
capacidad de lectura que recuperar cada elemento.
¿Es gratis DescribeTable? No consume capacidad de lectura — es una llamada de metadatos, no una lectura de datos, así que consultarlo con frecuencia no tocará el rendimiento de tu tabla.
¿Cómo averiguo el tamaño de un elemento? DynamoDB mide por tamaño de elemento (redondeado hacia arriba por cada 1 KB escrito / 4 KB leído). Pega un elemento en la calculadora de tamaño de elemento para ver su tamaño facturado, y consulta el límite de 400 KB por elemento para conocer el techo.
¿Afecta el número de elementos a mi factura?
El almacenamiento se factura por TableSizeBytes, y las peticiones por tamaño
de elemento × número de peticiones — no por número de elementos directamente.
Pon los números de tu tabla en la
calculadora de precios para ver el
panorama mensual entre los modos bajo demanda y aprovisionado.
¿Quieres la forma de la tabla, las estimaciones y los campos indexados a un clic? Descarga DynoTable y abre el panel de estadísticas en cualquier tabla.


