Vous ne pouvez accéder aux éléments que par leur clé primaire dans une table de hachage. C'est plus rapide qu'avec un algorithme d'arborescence ( O(1)
au lieu delog(n)
), mais vous ne pouvez pas sélectionner de plages ( tout entre x
ety
). Les algorithmes d'arborescence prennent en charge cela Log(n)
alors que les index de hachage peuvent entraîner une analyse complète de la table O(n)
. De plus, la surcharge constante des index de hachage est généralement plus importante ( ce qui n'est pas un facteur en notation thêta, mais elle existe toujours ). De plus, les algorithmes d'arbre sont généralement plus faciles à maintenir, à se développer avec les données, à l'échelle, etc.
Les index de hachage fonctionnent avec des tailles de hachage prédéfinies, vous vous retrouvez donc avec des «compartiments» dans lesquels les objets sont stockés. Ces objets sont à nouveau bouclés pour trouver vraiment le bon dans cette partition.
Donc, si vous avez de petites tailles, vous avez beaucoup de frais généraux pour les petits éléments, les grandes tailles entraînent une numérisation plus poussée.
Les algorithmes actuels des tables de hachage sont généralement mis à l'échelle, mais la mise à l'échelle peut être inefficace.
Il existe en effet des algorithmes de hachage évolutifs. Ne me demandez pas comment cela fonctionne - c'est un mystère pour moi aussi. AFAIK ils ont évolué à partir de la réplication évolutive où le re-hachage n'est pas facile.
Il s'appelle RUSH - R eplication U nder S calable H ashing , et ces algorithmes sont donc appelés algorithmes RUSH.
Cependant, il peut y avoir un point où votre index dépasse une taille tolérable par rapport à vos tailles de hachage et votre index entier doit être recréé. Ce n'est généralement pas un problème, mais pour des bases de données énormes, énormes, cela peut prendre des jours.
Le compromis pour les algorithmes d'arbre est petit et ils conviennent à presque tous les cas d'utilisation et sont donc par défaut.
Cependant, si vous avez un cas d'utilisation très précis et que vous savez exactement de quoi et seulement ce qui sera nécessaire, vous pouvez profiter des index de hachage.