Problema de rendimiento

Anti-patrón SELECT * en n8n

Por qué recuperar todas las columnas desperdicia memoria y ancho de banda

¿Qué es este problema?

Usar SELECT * recupera cada columna de una tabla de base de datos, incluyendo blobs JSON grandes, campos de texto y datos binarios que podrías no necesitar. Esto desperdicia memoria, ancho de banda de red y tiempo de procesamiento.

Patrones problemáticos:

  • SELECT * FROM users en lugar de SELECT id, name, email
  • Consultar tablas con columnas TEXT o JSON grandes
  • Obtener campos BLOB cuando solo se necesitan metadatos
  • Joins de tablas con SELECT * retornando duplicados

¿Por qué es peligroso?

Agotamiento de memoria

Columnas grandes (JSON, TEXT, BLOB) pueden consumir gigabytes de memoria al obtener muchas filas.

Sobrecarga de red

Transferir datos innecesarios ralentiza consultas y aumenta la carga de base de datos.

Acoplamiento de esquema

Agregar nuevas columnas a tablas cambia silenciosamente lo que tu workflow recibe.

Procesamiento más lento

Más datos significa mayor tiempo de procesamiento en nodos downstream.

Cómo solucionarlo

  1. 1

    Especificar columnas requeridas

    Reemplaza SELECT * con una lista explícita de columnas: SELECT id, name, email, created_at.

  2. 2

    Usar opciones de proyección

    En nodos de base de datos de n8n, usa la opción 'Columns' para obtener solo los campos necesarios.

  3. 3

    Crear vistas de base de datos

    Para consultas complejas, crea una vista de base de datos que retorne solo las columnas necesarias.

  4. 4

    Usar paginación

    Combina columnas específicas con LIMIT/OFFSET para controlar el volumen de datos.

Escanea tu workflow ahora

Sube tu archivo JSON de n8n y detecta consultas de base de datos usando SELECT *.

Buscar problemas de rendimiento

Recursos relacionados

Problemas de rendimiento relacionados