2010-11-20 24 views
2

Dans mon projet de site Web, je dois télécharger les fichiers PDF de l'utilisateur final et les enregistrer. tous les 3 mois je suppose de recevoir environ 2000 fichiers pdf avec une taille de 2 Mo pour chaque pdf. Quelle est la meilleure solution? enregistrer les fichiers dans le disque dur (dans un dossier) et enregistrer le fichier d'adresse dans le DB < ou> enregistrer les fichiers directement dans un blob-champ dans la db (MySQL)Enregistrement de fichiers PDF dans DB ou File-System

MFG

Répondre

7

L'enregistrement de grandes quantités de données binaires en tant que BLOB n'est pas une bonne idée car les avantages liés à l'utilisation d'un système de fichiers standard sont minimes et la charge sur le SGBD est augmentée. Stocker un fichier sur le disque et le nom du fichier dans la base de données est une meilleure idée. Une chose à retenir est d'éviter de placer tous les fichiers dans un répertoire unique (cela ralentira le système de fichiers lors de l'accès aux fichiers). Placez-les dans des sous-répertoires et utilisez les deux premiers caractères du nom de fichier comme nom du sous-répertoire.

+1

+1 J'ai déjà construit une application qui produirait des milliers de fichiers PDF par jour avec une exigence pour le fichier PDF produit à enregistrer et je l'ai impliquée de cette façon. De plus, l'enregistrement dans le système d'exploitation plutôt que dans un BLOB signifie que le PDF peut être consulté sans avoir à accéder via le db/déplacé vers un autre disque sans trop d'effort – CResults

1

Je pense que bonne règle est de décider quelle ressource est la moins chère pour vous, l'espace disque ou la mémoire. Si c'est la dernière solution, utilisez le système de fichiers. Cela dit, l'idée de stocker des fichiers pdf de 2 Mo stockés en tant que BLOB dans MySQL ne semble pas si efficace.