Je travaille sur un projet qui surveille essentiellement un ensemble de répertoires distants (FTP, chemins en réseau, et autres), si le fichier est considéré comme nouveau et répond aux critères que nous le téléchargeons et le traitons. Cependant, je suis coincé sur la meilleure façon de garder une trace des fichiers que nous avons déjà téléchargés. Je ne veux pas télécharger de fichiers en double, donc je dois garder une trace de ce qui est déjà téléchargé.Persistance des données pour python quand beaucoup de recherches mais peu écrit?
i stockait réservation initiale comme un arbre:
server->directory->file_name
Lorsque le service arrête il écrit dans un fichier, et relit en arrière quand il démarre. Cependant, étant donné qu'il y a environ 20 000 fichiers dans l'arborescence, cela ralentit beaucoup.
Y a-t-il une meilleure façon de procéder?
EDIT
Les temps recherche commencent à beaucoup de ralentissement, ma mise en œuvre de base est un dict d'un dict. Le matériel de stockage sur le disque est bien, c'est plus ou moins juste le temps de recherche. Je sais que je peux optimiser l'arbre et le partitionner. Cependant, cela semble excessif pour un si petit projet, j'espérais que python aurait quelque chose comme ça.
Que diriez-vous d'utiliser un 'dict' de' dict' et d'utiliser 'pickle' pour sérialiser/désérialiser les données sur le disque? Avez-vous essayé cette option? –
c'est ce que je fais à peu près, mais la dict du dict commence à ralentir après un certain point. Quand il y a beaucoup de fichiers stockés. – UberJumper
Pourquoi ne pas utiliser une base de données Embedded SQL comme sqlite? Python a des bibliothèques pour cela. –