Saltar al contenido principal

Problema

Una operación de búsqueda sobre Map, como a['key'], tiene complejidad lineal (como se menciona aquí) y puede resultar ineficiente. Esto se debe a que seleccionar un valor con una clave específica de una tabla requeriría recorrer todas las claves (~M) de todas las filas (N) de la columna Map, lo que da como resultado ~MxN búsquedas. Una búsqueda con Map puede ser 10 veces más lento que una columna String. El experimento siguiente también muestra una ralentización de ~10 veces para una consulta en frío, y una diferencia de varios órdenes de magnitud en el volumen de datos procesados (7.21 MB frente a 5.65 GB).
Solución Para mejorar la consulta, podemos añadir otra columna cuyo valor predeterminado corresponda a una clave concreta de la columna Map, y luego materializarla para rellenar ese valor en las filas existentes. De este modo, extraemos y almacenamos el valor necesario en el momento de la inserción, lo que acelera la búsqueda en tiempo de consulta.
Última modificación el 3 de julio de 2026