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

PostgreSQL Discussion :

Condition pour indéxer


Sujet :

PostgreSQL

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 6
    Par défaut Condition pour indéxer
    Bonjour

    Je m'interroge un petit peu ce soir sur les index.
    Avec une table assez simple contenant des enregistrements concernant des voitures qui doivent être réparées :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    CREATE TABLE voiture (
    id int auto increment,
    immatriculation varchar(255),
    repare int default 0);
    La colonne "repare" permet d'indiquer les voitures qui ont été réparées ou non.
    Imaginons que je suis un trés bon garagiste et que je répare 100 000 voitures en une journée au bout d'une année je vais me retrouver avec une liste impressionnante de voitures réparées.
    Pour récupérer rapidement les voitures qui ne sont pas encore réparées, j'ajoute un index sur la colonne "repare".
    Et c'est à ce moment que mon interrogation arrive : mon index ne va stocker que deux valeurs différentes (0 ou 1) avec un nombre d'enregistrement qui va être plus importante que l'autre (1) puisque à terme il y aura plus de voitures réparées. Mais ma requête ne va se faire que sur les voitures qui ne sont pas réparées, donc trés peu d'enregistrements. Donc mon index va grossir pour rien.
    Existe t'il un moteur de base de données qui permet de définir les valeurs qui doivent être indexées pour éviter que celui ci ne deviennent énorme ?
    Ou peut être est ce mon implémentation qui est mal faite ?
    J'ai regardé du côté de Mysql, PostgreSQL, et je n'ai rien trouvé.
    La feuil

  2. #2
    Membre du Club
    Profil pro
    Inscrit en
    Mai 2002
    Messages
    6
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2002
    Messages : 6
    Par défaut
    Bon, en fait, je viens de trouver la réponse dans la documentation de PostgreSQL :
    Ca s'appelle donc un "index partiel" ou en anglais "partial index".

    Donc pour reprendre l'exemple précédent, la requête de création de l'index serait :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    CREATE INDEX repare_idx ON voiture (repare)
    WHERE repare=1;
    Bonne soirée
    La feuil

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

Discussions similaires

  1. [MySQL] Condition pour une Requete sql vide
    Par needles94000 dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 17/03/2006, 18h03
  2. [FLASH MX2004] Condition pour attachMovie ?
    Par sovitec dans le forum Flash
    Réponses: 9
    Dernier message: 10/01/2006, 15h52
  3. Conditions pour remplissage d'un Formulaire
    Par budiste dans le forum Langage
    Réponses: 6
    Dernier message: 15/12/2005, 15h36
  4. [VBA-A] Condition pour boucle if
    Par ptitegrenouille dans le forum Access
    Réponses: 6
    Dernier message: 23/11/2005, 09h33
  5. Condition pour l'affichage d'une boite de message
    Par Virgile59 dans le forum Access
    Réponses: 19
    Dernier message: 05/10/2005, 14h22

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