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

Requêtes PostgreSQL Discussion :

Index couvrant dans postgres ?


Sujet :

Requêtes PostgreSQL

  1. #1
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut Index couvrant dans postgres ?
    Bonjour,

    Je souhaiterais savoir s'il existe des index couvrants sous Postgres (cf : http://sqlpro.developpez.com/cours/quoi-indexer/, voir VIII. Index couvrant), comme il peut en exister sous MSSQL. Ou existe-il une autre technique ?

    J'ai cherché dans la doc postgres 8.2 (ma version) mais sans trouver rien de concluant sur la création des index.

    Merci d'avance,

    Denis

  2. #2
    Membre éprouvé Avatar de kain_tn
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    1 803
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Suisse

    Informations forums :
    Inscription : Mars 2005
    Messages : 1 803

  3. #3
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    Bonjour,

    En fait, je dois réaliser un outils de recherche de données, où je peux rechercher sur un type (équivalent d'une des colonnes), une valeur (la valeur de mon type) et une ou plusieurs bases (la colonne colbase de ma table).
    Voici la requête :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    SELECT *
    FROM matable
    WHERE colx like 'mavaleur%' AND colbase IN (baseList);
    où :
    - les valeurs de retours : * sont fixes,
    - le premier filtre colx est une colonne entre col1 et col4 varie,
    - baseList est la liste de mes bases pouvant prendre les valeurs : 'E' ou 'A' ou 'P' ou 'E,A' ou 'E,P' ou 'A,P' ou 'E,A,P' varie,

    Je souhaiterai optimiser au maximum cette requête car elle sera très souvent utilisée et le nombre de ligne pourra dépasser facilement les 500 000...

    Pour l'instant j'ai indexé mes 4 colonnes équivalentes à mon type de recherche (colx dans mon exemple).

    Si je comprends bien je dois ajouter à chaque index la colonne colbase :
    Avant:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE INDEX "idx_matable_colx" ON matable USING btree ("colx");
    Après:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    CREATE INDEX "idx_matable_colx" ON matable USING btree ("colx","colbase");
    J'espère avoir été clair ...

    Si besoin de précision n'hésitez pas de demander.

    Merci d'avance,

    Denis

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Octobre 2008
    Messages
    1 874
    Détails du profil
    Informations personnelles :
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Octobre 2008
    Messages : 1 874
    Par défaut
    En première approche, ces 4 index simples sur col1..4 paraissent suffisants.
    Indexer en plus colbase n'apportera rien de bon s'il n'y a que 7 valeurs différentes dans cette colonne.
    Comme le plan d'exécution dépend du contenu des colonnes, ça ne sert à rien de trop pré-supposer tel ou tel comportement de l'optimiseur, il faut le constater concrètement avec les vraies données et avec EXPLAIN ou EXPLAIN ANALYZE.

  5. #5
    Membre averti
    Profil pro
    Inscrit en
    Février 2009
    Messages
    25
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2009
    Messages : 25
    Par défaut
    Merci pour vos réponses à bientôt.

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

Discussions similaires

  1. les photos dans postgres
    Par jarod_ab dans le forum PostgreSQL
    Réponses: 7
    Dernier message: 26/02/2006, 16h31
  2. Insertion des apostrophes dans Postgres.
    Par jarod_ab dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 13/02/2006, 11h37
  3. .bat pour l'import de fichier txt dans postgres
    Par pseudomh dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 25/03/2005, 00h02
  4. Importance des accents pour une recherche dans postgre
    Par glouf dans le forum PostgreSQL
    Réponses: 4
    Dernier message: 05/03/2005, 13h25
  5. a quoi sert le schema dans postgres ??
    Par champion dans le forum PostgreSQL
    Réponses: 6
    Dernier message: 13/09/2004, 10h25

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