Re: Avantages et inconvénients du stockage de fichiers en base

From: Bertrand ROBERT <b(dot)robert(at)kifaisa(dot)com>
To: Sébastien Dinot <sebastien(dot)dinot(at)free(dot)fr>
Cc: pgsql-fr-generale <pgsql-fr-generale(at)postgresql(dot)org>
Subject: Re: Avantages et inconvénients du stockage de fichiers en base
Date: 2017-02-13 15:01:38
Message-ID: 971012286.11107220.1486998098788.JavaMail.zimbra@kifaisa.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-fr-generale

Bonjour Sébastien,

En faites il est difficile de trouver des réponses de ce type sur Internet car chaque besoin est différent.
Est-ce que tu as une idée du nombre de fichier à stocker et surtout de l'importance de ces données ?

Concernant l'idée de ne stocker qu'un lien dans la base de données et d'avoir les fichiers sur un système de fichier elle est bonne tant que l'on reste dans des volumes acceptables et des besoins simples mais ça devient compliqué dès que l'on veut :
- répartir les fichiers sur plusieurs machines
- avoir de la redondance
- stocker un nombre important de fichiers
- etc

Par contre la solution a le mérite d'être simple et efficace (surtout pour les backups).

Il existe plusieurs pistes qui peuvent t'intéresser toi et ton collègue :
- stockage dans une base de données NoSQL (Cassandra, MongoDB, etc)
- stockage objet (Ceph, Swift, etc)
- stockage distribué (DRBD, GlusterFS, etc)

Tout cela va dépendre de plusieurs facteurs :
- importance des données
- nombre de machine à disposition
- type de réseau entre les machines
- qualité du réseau entre les machines (DRBD / GlusterFS sont particulièrement sensibles quand le débit s'effondre)
- applicatif frontal qui va ressortir les données
- etc

Bertrand

De: "Sébastien Dinot" <sebastien(dot)dinot(at)free(dot)fr>
À: "pgsql-fr-generale" <pgsql-fr-generale(at)postgresql(dot)org>
Envoyé: Lundi 13 Février 2017 15:51:14
Objet: [pgsql-fr-generale] Avantages et inconvénients du stockage de fichiers en base

Bonjour à tous,

Un collègue vient de me demander s'il était préférable de stocker des fichiers (de formats variés et d'une taille annoncée de quelques dizaines de Mo chacun) dans la base de données elle-même ou de ne mettre en base qu'un lien vers les fichiers, ces derniers étant stockés sur un système de fichiers conventionnel.

Je lui ai répondu que, d'expérience, j'aurais tendance à préférer le stockage externe pour plusieurs raisons (performance et taille de la base, efficacité de la sauvegarde, éviter d'avoir à se palucher la gestion de l'encodage dans le cas de fichiers de texte brut) mais, à l'issue d'une demi-heure de recherche sur le net, je n'ai trouvé aucune étude un peu poussée du problème sur le net.

La réponse la plus étoffée que j'ai trouvée est sans doute celle-ci :

http://softwareengineering.stackexchange.com/questions/150669/is-it-a-bad-practice-to-store-large-files-10-mb-in-a-database

Je devine que la question n'a pourtant rien de neuf et qu'elle a déjà été débattue des centaines de fois. Auriez-vous quelques pointeurs intéressants à partager ? Et, au passage, quel est votre propre avis à ce sujet ?

Je vous remercie par avance de vos lumières,

Sébastien

--
Sébastien Dinot, sebastien(dot)dinot(at)free(dot)fr
http://sebastien.dinot.free.fr/
Ne goûtez pas au logiciel libre, vous ne pourriez plus vous en passer !

--
Envoi via la liste pgsql-fr-generale (pgsql-fr-generale(at)postgresql(dot)org)

__________ Information from ESET Mail Security, version of virus signature database 14929 (20170213) __________

The message was checked by ESET Mail Security.
http://www.eset.com

__________ Information from ESET Mail Security, version of virus signature database 14929 (20170213) __________

The message was checked by ESET Mail Security.
http://www.eset.com

In response to

Responses

Browse pgsql-fr-generale by date

  From Date Subject
Next Message Bruno Friedmann 2017-02-13 15:24:45 Re: Avantages et inconvénients du stockage de fichiers en base
Previous Message Sébastien Dinot 2017-02-13 14:51:14 Avantages et inconvénients du stockage de fichiers en base