2010-05-15 23 views
4

Fondamentalement, je suis toujours en train de travailler sur un site web lié à un puzzle (vraiment un micro-site), et je crée un outil qui vous permet de saisir un modèle de mot (par exemple "r ?? n") mots (dans ce cas: pluie, rênes, ruine, etc.). Dois-je stocker les mots dans des fichiers texte locaux (tels que words5.txt, qui aurait une liste de mots de 5 lettres séparés par des retours), ou dans une base de données (comme la table Words5, qui stocke à nouveau des mots de 5 lettres)?Lequel serait le meilleur? Stocker/accéder aux données dans un fichier texte local ou dans une base de données?

Je regarde le problème en termes de vitesses de récupération de données et de charge du serveur CPU. Je pourrais certainement essayer dans les deux sens et enregistrer les temps pris pour plusieurs courses avec les deux méthodes, mais je préfère l'entendre des gens qui pourraient avoir eu de l'expérience avec cela.

Quelle méthode est généralement meilleure dans l'ensemble?

Répondre

1

Pour une récupération rapide, vous avez certainement besoin d'une sorte d'index. Si vous ne voulez pas écrire de code index vous-même, il est certainement plus facile d'utiliser une base de données.

Si vous utilisez Java ou .NET pour votre application, envisagez de rechercher dans db4o. Il stocke simplement n'importe quel objet tel quel avec une seule ligne de code et il n'y a aucun coût d'installation pour créer des tables.

6

La base de données vous donnera la meilleure performance avec un minimum de travail. Le support d'index intégré et les analyseurs de requête vous donneront de bonnes performances gratuitement tandis qu'un fichier texte peut vous donner d'excellentes performances pour une tonne de travail.

À court terme, je recommanderais de créer une interface générique qui cacherait la différence entre une base de données et un fichier plat. Plus tard, vous pourrez comparer la meilleure performance, mais je pense que la base de données vous donnera le meilleur rendement par heure de développement.

0

Stockage des données dans un fichier texte local (lorsque vous ajoutez de nouveaux enregistrements à la fin du fichier) toujours plus rapide que le stockage dans la base de données. Ainsi, si vous créez une application à forte charge, vous pouvez enregistrer les données dans un fichier texte et copier les données dans une base de données plus tard. Cependant, dans la plupart des applications, vous devez utiliser une base de données au lieu d'un fichier texte, car l'approche par base de données présente de nombreux avantages.