1. #1
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    14 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 14 881
    Points : 28 588
    Points
    28 588
    Billets dans le blog
    1

    Par défaut Utiliiser les tablespace maintenant ou plus tard ?

    Bonjour,

    Je travaille sur un projet personnel avec une BDD Postgresql. Pour le moment, tout est sur mon ordinateur portable avec un seul disque dur mais, si je vais au bout de ce projet, que je le mets en ligne et qu'il rencontre le succès, la BDD pourrait grossir au point où la répartition des données sur plusieurs tablespaces pourrait être significativement utile. J'envisage ainsi un tablespace par schéma (actuellement j'ai deux schémas, un pour les données de l'application et un pour les données de référence telles que pays, villes, types...) pour les données et un tablespace pour les index, voire deux tablespaces pour les index liés à chaque schéma.

    1) Est-il relativement facile, dans Postgresql, de répartir après coup la base de données en plusieurs tablespaces ou bien dois-je prévoir cette architecture dès maintenant ?
    2) La répartition que j'envisage vous semble t-elle bonne ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP...
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  2. #2
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    17 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 17 128
    Points : 39 756
    Points
    39 756
    Billets dans le blog
    1

    Par défaut

    1) non du fait de l'inertie des données. Dans PG c'est bien plus difficile que dans SQL Server par exemple, ou l'on peut faire cela à chaud. Dans PG le ALTER TABLE ... SET TABLESAPCE ... bloque la table...
    2) non... Il y a 10 ans oui ! Aujourd'hui la séparation INDEX / TABLE n'est pas spécialement intéressante que sur certaines tables. En fait il faudrait plus isoler les tables les plus sollicitées en écritures sur des TABLESPACE différents conduisant à des disques physiques spécifiques.
    Il est bien évidemment plus facile de faire cela au départ de la base, parce que depuis la version 9.2, il est possible de déplacer des TABLESPACE via le file system, après coup.

    Autrement dit : créer les tablespace adéquat au départ, mais tous sur le même disque et au fur et à mesure de la montée en charge, les déplacer par la file system.

    Dans les deux cas, aucune possibilité de faire cela à chaud.

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  3. #3
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    14 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 14 881
    Points : 28 588
    Points
    28 588
    Billets dans le blog
    1

    Par défaut

    OK merci Fred !
    En fait il faudrait plus isoler les tables les plus sollicitées en écritures sur des TABLESPACE différents conduisant à des disques physiques spécifiques.
    Donc mon idée de séparer le schéma du référentiel, par nature peu modifié, du schéma général, par nature celui où s'enregistreront les données des utilisateurs, est une bonne idée ?
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP...
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

  4. #4
    Rédacteur
    Avatar de SQLpro
    Homme Profil pro
    Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Inscrit en
    mai 2002
    Messages
    17 128
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Var (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Expert SGBDR & SQL, spécialiste Microsoft SQL Server
    Secteur : Conseil

    Informations forums :
    Inscription : mai 2002
    Messages : 17 128
    Points : 39 756
    Points
    39 756
    Billets dans le blog
    1

    Par défaut

    De prime abord oui....

    Pour info, je créé aussi des storage Read Only, mais cela n'est pas supporté par PG....
    En revanche le partitionnement existe, mais il est catastrophique dans PG ! Même le staff PG convient qu'il faut revoir la copie !
    https://wiki.postgresql.org/wiki/Table_partitioning

    En particulier, tu ne peut pas :
    • partitionner en hash
    • faire un UPDATE sur la clf de partitionnement si la ligne change de partition
    • avoir de FK sur les partitions
    • avoir de contrainte d'unicité ni de clef primaire
    • avoir de déclencheur de niveau ligne
    • gérer, administrer les partitions
    • ...


    Le plus effrayant c'est que le staff de PG regarde les autres solutions (oracle, MySQmerde, DB2..) mais pas la plus élégante, celle de SQL Server...

    A +
    Frédéric Brouard - SQLpro - ARCHITECTE DE DONNÉES - expert SGBDR et langage SQL
    Le site sur les SGBD relationnels et le langage SQL: http://sqlpro.developpez.com/
    Blog SQL, SQL Server, SGBDR : http://blog.developpez.com/sqlpro
    Expert Microsoft SQL Server - M.V.P. (Most valuable Professional) MS Corp.
    Entreprise SQL SPOT : modélisation, conseils, audit, optimisation, formation...
    * * * * * Enseignant CNAM PACA - ISEN Toulon - CESI Aix en Provence * * * * *

  5. #5
    Modérateur
    Avatar de CinePhil
    Homme Profil pro
    Ingénieur d'études en informatique
    Inscrit en
    août 2006
    Messages
    14 881
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 54
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Ingénieur d'études en informatique
    Secteur : Enseignement

    Informations forums :
    Inscription : août 2006
    Messages : 14 881
    Points : 28 588
    Points
    28 588
    Billets dans le blog
    1

    Par défaut

    Si j'ai un jour besoin de partitionner la BDD, c'est que je serai devenu riche !

    On va se contenter de créer un tablespace pour le schéma général et un pour le schéma du référentiel ; ça devrait suffire. Quitte à créer plus tard d'autres schémas sur d'autres tablespace si je développe des extensions à mon projet.

    Merci pour ton expérience.
    Philippe Leménager. Ingénieur d'étude à l'École Nationale Supérieure de Formation de l'Enseignement Agricole. Autoentrepreneur.
    Mon blog sur la conception des BDD, le langage SQL, le PHP...
    « Ce que l'on conçoit bien s'énonce clairement, et les mots pour le dire arrivent aisément ». (Nicolas Boileau)
    À la maison comme au bureau, j'utilise la suite Linux Mageïa !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 1
    Dernier message: 12/07/2016, 16h22
  2. Réponses: 2
    Dernier message: 23/05/2011, 10h57
  3. Enregistrer une liste de commande pour les reexecute plus tard
    Par rosty38 dans le forum Général Python
    Réponses: 9
    Dernier message: 28/10/2010, 16h57
  4. Réponses: 7
    Dernier message: 28/03/2004, 01h28

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