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
Especificar columnas requeridas
Reemplaza SELECT * con una lista explícita de columnas: SELECT id, name, email, created_at.
- 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
Crear vistas de base de datos
Para consultas complejas, crea una vista de base de datos que retorne solo las columnas necesarias.
- 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 *.