IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Administration PostgreSQL Discussion :

Large objects : postgres or not ?


Sujet :

Administration PostgreSQL

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Octobre 2010
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2010
    Messages : 3
    Points : 4
    Points
    4
    Par défaut Large objects : postgres or not ?
    Bonjour,

    Je me demande depuis quelques temps quelle est la meilleure solution pour stocker des documents ? J'ai un projet d'entreprise qui consiste à trouver une solution pour stocker et archiver tout un tas de documents important de la boite. Je parle essentiellement de PDF ou images.

    Ma question est la suivante, sachant qu'au boulot on est à fond Postgresql (ce qui n'est pas un mal!) : est-ce une bonne idée de stocker autant de documents en bytea[] dans 1 base Postgres ? (volumétrie totale attendue au départ : entre 3 et 4 Go). Ou alors vaut-il mieux ne gérer que les chemins vers ces fichiers dans la base, et les stocker tout bêtement sur un disque ? Ou encore faut-il envisager un autre SGBD ?

    Merci pour vos réponses

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Octobre 2009
    Messages
    70
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Octobre 2009
    Messages : 70
    Points : 88
    Points
    88
    Par défaut
    Stocker des gros objets binaires dans une base de données t'apporte :

    - une gestion transactionnelle
    - une sauvegarde cohérente avec le reste des tables

    Ces points peuvent être décisifs. Par contre :

    - tu n'as pas de sauvegarde différentielle (une BDD est sauvegardée en entier) donc tes backups deviennent obèses et lents
    - la manipulation des données est beaucoup plus lente qu'avec des fichiers
    - pour le type BYTEA, tout le fichier est ramené en RAM... si c'est un ISO de 4 gigas, c'est pas top

    On peut réconcilier les deux en stockant dans des fichiers (donc accès rapide et backup rapide) avec un nom dérivé d'une séquence postgres (la clé primaire en SERIAL), à condition de gérer cela correctement. Tu peux ajouter une gestion de versions aussi...

    L'important est de ne pas réutiliser un nom de fichier récemment supprimé (d'où les noms de fichiers en SERIAL) et de bien faire attention à l'ordre des commits (écris le fichier, BEGIN, INSERT, obtiens le n°, renomme le fichier, fsync le fichier, COMMIT) pour que ce que tu insère dans la base ne puisse en aucun cas (crash etc) pointer sur un fichier à moitié écrit, absent, ou un autre fichier, ou n'importe quoi d'autre. Pour la suppression c'est la même philosophie... mais bon, fais simple : ne supprime pas XD versionne plutôt (comme ça dans 6 mois un gus ne viendra pas dans ton bureau les cheveux dressés te demander de récupérer son rapport qu'il a effacé)

  3. #3
    Rédacteur

    Avatar de SQLpro
    Homme Profil pro
    Expert bases de données / SQL / MS SQL Server / Postgresql
    Inscrit en
    Mai 2002
    Messages
    21 897
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert bases de données / SQL / MS SQL Server / Postgresql
    Secteur : Conseil

    Informations forums :
    Inscription : Mai 2002
    Messages : 21 897
    Points : 53 135
    Points
    53 135
    Billets dans le blog
    6
    Par défaut
    Lisez ceci : http://sqlpro.developpez.com/cours/stockerimages/

    Notez que certains SGBDR comme IBM DB2 ou SQL Server 2008 permettent le stockage de fichiers à la manière des DATALINK de la norme SQL ce qui permet de marier le meilleurs des deux mondes.

    A +

Discussions similaires

  1. Réponses: 0
    Dernier message: 22/02/2010, 10h36
  2. Réponses: 3
    Dernier message: 04/06/2009, 15h54
  3. Object.extend is not a function (Lightbox)
    Par remixxl dans le forum Général JavaScript
    Réponses: 5
    Dernier message: 10/10/2008, 14h25
  4. Comment inserer des donnee de type Large Object !!
    Par josoft dans le forum Requêtes
    Réponses: 4
    Dernier message: 20/07/2003, 11h21
  5. Comment inserer des donnee de type Large Object !!
    Par josoft dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 20/07/2003, 11h21

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo