J'ai une liste ordonnée simple qui pourrait contenir 1 million ou plus d'articles. Il n'y a que quelques actions qui sont faites avec cette liste:Quelle est la meilleure façon de manipuler et de stocker d'énormes listes ordonnées ou des hachages?
- recherche dans une valeur existent
- trouver l'index pour une valeur
- valeur découverte pour l'index
- ajouter une valeur
- get nombre d'éléments de la liste
Une fois qu'une valeur est ajoutée à la liste, elle ne change jamais. J'ajoute des éléments à la liste, pas d'insertion ou de suppression.
J'ai besoin de manipuler cette grande liste, et de la stocker de manière persistante. En ce moment j'utilise une base de données Int => String pour représenter la liste, mais je pense qu'il devrait y avoir un moyen plus efficace de le faire.
je pourrais utiliser memcached, mais je pense que 2 fonctions sont manquantes:
- stockage persistant
- trouver l'index pour une valeur
J'aime ça mieux que ma solution. Cela vous donne O (1) pour tout. Il suppose que la surcharge mémoire n'est pas un problème - vous devez stocker deux fois les données, plus les index, alors que je ne stocke que les données, mais au prix d'une recherche O (log n). – SquareCog
il ne devrait pas y avoir de surcharge mémoire importante - les fichiers DB sont stockés sur le disque – Alnitak
Vous avez raison, j'ai mal interprété la question .. supprimé la réponse non pertinente. – SquareCog