Passer au contenu principal

Problème

Une recherche dans une Map, telle que a['key'], a une complexité linéaire (comme indiqué ici) et peut s’avérer inefficace. En effet, sélectionner une valeur associée à une clé donnée dans une table nécessiterait de parcourir toutes les clés (~M) de toutes les lignes (N) de la colonne Map, soit ~MxN recherches. Une recherche dans une Map peut être 10x plus lente qu’une colonne String. L’expérience ci-dessous montre également un ralentissement d’environ 10x pour une requête à froid, ainsi qu’un écart de plusieurs ordres de grandeur dans le volume de données traitées (7.21 MB contre 5.65 GB).
Solution Pour améliorer la requête, nous pouvons ajouter une autre colonne, avec pour valeur par défaut celle d’une clé spécifique de la colonne Map, puis la matérialiser afin de renseigner cette valeur pour les lignes existantes. De cette façon, nous extrayons et stockons la valeur nécessaire au moment de l’insertion, ce qui accélère la recherche au moment de l’exécution de la requête.
Dernière modification le 2 juillet 2026