2011-01-25 3 views
0

Quelle est la meilleure façon d'enregistrer une grande quantité de données pour une application .Net 4.0? Actuellement, j'utilise des listes et des sérialisations vers un fichier dans le dossier "User Data", et cela fonctionne bien, mais je veux savoir s'il existe un moyen meilleur/plus rapide d'enregistrer/charger une grande quantité de données.La meilleure façon d'enregistrer/charger une grande quantité de données dans une application .Net?

Les données que j'économise contiennent seulement beaucoup de mots, comme des documents.

La taille des données est de presque 1 mb.

+3

Tout dépend de l'objectif. Comment les données sont-elles utilisées? Vous êtes beaucoup plus susceptible d'obtenir la réponse que vous voulez si votre question contient une explication plus détaillée de ce que vous essayez de faire. – Andrew

+0

J'ai beaucoup de mots que je veux montrer dans une grille/liste. – syncis

+0

1mb de données n'est pas beaucoup de données – BlackTigerX

Répondre

1

Cela dépend vraiment du type de votre application. Je n'utiliserais aucune base de données SQL pour simplement charger et sauvegarder des données que je n'ai pas besoin d'interroger ou de transformer. Le temps qu'il faudra pour mapper votre graphique d'objet à un modèle relationnel ne vaut pas la peine. Aussi je ne crois pas qu'il sera jamais plus rapide que la simple sérialisation en raison de la surcharge associée aux bases de données (gestion des connexions et mappage)

Mon expérience récente a été avec BinnaryFormatter qui a eu d'excellents résultats (fichiers ~ 15mb). Pire encore, vous pouvez toujours écrire votre propre formateur.

+0

Ah ok! Je vais en lire plus sur BinaryFormatters. Génial! – syncis

0

Kinda dépend de vos données et comment vous l'avez stocké dans votre application.

Mais tous ces systèmes de stockage NoSQL sont une possibilité ou simplement des données binaires simples dans un fichier.

+0

Les données sont beaucoup de mots. – syncis

0

Lorsque vous parlez de "grande quantité de données", qu'entendez-vous exactement par là? Un mégaoctet? un téraoctet?

Et quelles sont exactement les données?

S'il s'agit d'un ensemble d'enregistrements de compte, il peut très bien appartenir à une base de données quelconque; si c'est un ensemble d'images ou de documents de traitement de texte, peut-être pas.

+0

La taille est 1 mb et ne contiendra que beaucoup de mots. – syncis

+0

Si ce ne sont que des mots, pourquoi ne pas les écrire en texte brut dans l'encodage de votre choix. Vous pouvez écrire un mot par ligne, ou si vous avez besoin de plusieurs mots par ligne, faites-le délimité par des tabulations (HT). Le texte brut a l'avantage d'être lisible/modifiable par l'homme et facilement accessible par à peu près n'importe quoi. –

0

Si vous voulez un accès rapide, une approche consisterait à sérialiser en une table de hachage et à la mettre en cache. Entre lit et écrit ...

problème ici est ofcourse, versioning, changement de namespaces (alors vous ne serez pas en mesure de désérialiser .... easyly), interblocages etc .... concurrency

mieux si vous sauvegardez le fichier en XML/JSON, et quand vous le lisez en mémoire, enregistrez-le dans une table de hachage ... pour un accès rapide ...

Questions connexes