Las Operaciones Scan se encargan de escanear por completo nuestras tablas para examinar todos sus elementos y comprobar si presentan los valores solicitados, pero son muy poco eficientes ya que utilizan bastantes unidades de lectura y aumentan los costos de nuestra base de datos, debemos evitar estas operaciones para tablas grandes.
AWS nos recomienda realizar operaciones pequeñas a lo largo del tiempo en vez de hacer una sola operación muy larga, también podemos configurar límites de tamaño para evitar los escaneos completos y duplicar nuestras tablas para realizar estas operaciones sobre tablas no principales y no afectar su rendimiento.
Operaciones Scan en DynamoDB: Funcionamiento y Eficiencia
Operaciones Scan en DynamoDB: Funcionamiento y Eficiencia
Recursos
Resumen
Las Operaciones Scan se encargan de escanear por completo nuestras tablas para examinar todos sus elementos y comprobar si presentan los valores solicitados, pero son muy poco eficientes ya que utilizan bastantes unidades de lectura y aumentan los costos de nuestra base de datos, debemos evitar estas operaciones para tablas grandes.
AWS nos recomienda realizar operaciones pequeñas a lo largo del tiempo en vez de hacer una sola operación muy larga, también podemos configurar límites de tamaño para evitar los escaneos completos y duplicar nuestras tablas para realizar estas operaciones sobre tablas no principales y no afectar su rendimiento.
Hasta este momento este curso de bases de datos ha sido en un 95% Teórico…La verdad se tenían muchas expectativas de la creación de bases de datos robustas, operaciones entre tablas de datos, consultas avanzadas y demás del gran mundo de las bases de datos…pero ha sido pura teoría…URGENTE ACTUALIZAR
Las Operaciones Scan se encargan de escanear por completo nuestras tablas para examinar todos sus elementos y comprobar si presentan los valores solicitados, pero son muy poco eficientes ya que utilizan bastantes unidades de lectura y aumentan los costos de nuestra base de datos, debemos evitar estas operaciones para tablas grandes.
❗ Importante: Aunque solo devuelve usuarios de Bogotá, DynamoDB sigue escaneando toda la tabla, lo que puede ser ineficiente en grandes volúmenes de datos.
3️⃣ScanvsQuery
CaracterísticaScanQueryEscanea toda la tabla✅ Sí❌ NoUsa índices (PK/SK o GSI/LSI)❌ No✅ SíEficiencia🚨 Lenta en tablas grandes🚀 Rápida y optimizadaFiltrado de datos✅ Sí (después del escaneo)✅ Sí (antes de la búsqueda)Consumo de RCUs🔥 Alto (ineficiente)⚡ Bajo (eficiente)
📌 UsaQuerysiempre que sea posible. Solo usa Scan cuando no tienes un índice que permita una búsqueda eficiente.
4️⃣ Estrategias para OptimizarScan
Si necesitas usar Scan, aquí hay algunas estrategias para mejorar su rendimiento:
✅ 1. Limitar los atributos retornados (ProjectionExpression)
En lugar de devolver toda la información, solicita solo los atributos necesarios:
Por defecto, DynamoDB usa lectura eventual, que es más rápida y eficiente en costo:
response = table.scan(ConsistentRead=False)
📌 Beneficio: Reduce el consumo de capacidad de lectura (RCU).
✅ 4. UsarParallel Scan
DynamoDB permite escanear en paralelo para acelerar la lectura en tablas grandes:
response = table.scan(
TotalSegments=4, # Divide la carga en 4 procesos
Segment=0
)
📌 Beneficio: Mejora el rendimiento al distribuir la carga de escaneo.
📌 Conclusión
❌ EvitaScanen tablas grandes porque consume muchos recursos y es lento.
✅ UsaQuerycon índices secundarios siempre que sea posible.
✅ Si debes usarScan, optimízalo con ProjectionExpression, LastEvaluatedKey, Parallel Scan, y limitando los atributos retornados.
AWS nos recomienda realizar operaciones pequeñas a lo largo del tiempo en vez de hacer una sola operación muy larga, también podemos configurar límites de tamaño para evitar los escaneos completos y duplicar nuestras tablas para realizar estas operaciones sobre tablas no principales y no afectar su rendimiento.