2010-06-24 8 views
1

Je me demandais quel type de recherche est implémenté dans différents formats de fichiers et quelle serait une bonne façon de construire un fichier qui a beaucoup de données pour permettre une recherche efficace. Certaines façons que j'ai considérées ont été d'avoir des paquets de taille égale, ce qui permet un saut rapide puisque vous savez ce que chaque bloc de données est, aussi pré-indexation chaque fois qu'un fichier est chargé est également une pensée.Façons de chercher efficacement dans des formats de fichiers personnalisés

+0

Vous allez devoir donner un peu plus d'informations que cela. quel type de format? binaire? texte? Le fichier représente-t-il une structure de données que vous devez analyser pour obtenir des informations? –

+0

Im demandant généralement, sur les techniques utilisées dans la recherche. – Cenoc

Répondre

1

Cela dépend entièrement du type de données et de ce que vous essayez de rechercher.

Si vous essayez de rechercher par index d'enregistrement, alors c'est sûr: les champs de taille fixe rendent la vie plus facile, mais gaspillent de l'espace. Si vous essayez de chercher par n'importe quoi d'autre, en gardant un index de clé: l'emplacement fonctionne bien. Si vous voulez être capable de construire le fichier séquentiellement, vous pouvez mettre l'index à la fin mais garder les quatre premiers octets du fichier (après le nombre magique ou autre) pour représenter l'emplacement de l'index lui-même (en supposant que vous pouvez réécrire ces quatre premiers octets). Si vous voulez être capable d'effectuer une sorte de découpage binaire sur des blocs de longueur variable, alors avoir un moyen raisonnablement efficace de détecter le début d'un bloc aide - tout comme les pointeurs suivant/précédent, comme mentionné par Alexandre. Fondamentalement, tout tourne autour des métadonnées, mais le bon type de métadonnées dépendra du type de données et des cas d'utilisation recherchés en premier lieu.

0

Eh bien, donner à chaque segment un décalage de taille par rapport au tronçon suivant est courant et permet de sauter rapidement des données inconnues. Une autre façon serait un morceau d'index au début du fichier, en stockant une table de tous les morceaux dans le fichier avec leurs décalages. Les programmes liraient simplement le morceau d'index en mémoire.

Questions connexes