|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2009 Messages : 25 ![]() |
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 |
|
|
00
|
|
|
#2 | |||
|
Membre Expert
![]() Inscription : mars 2005 Messages : 577 ![]() |
Les index couvrants existent bel et bien sous PostgreSQL:
Citation:
__________________
Copier c'est copier; voler c'est vendre un CD une vingtaine d'euros! Code C :
|
|||
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : février 2009 Messages : 25 ![]() |
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 :
- 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 :
CREATE INDEX "idx_matable_colx" ON matable USING btree ("colx"); Code :
CREATE INDEX "idx_matable_colx" ON matable USING btree ("colx","colbase"); Si besoin de précision n'hésitez pas de demander. Merci d'avance, Denis |
||
|
|
00
|
|
|
#4 |
![]() ![]() Inscription : octobre 2008 Messages : 1 508 ![]() |
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. |
|
|
10
|
|
|
#5 |
|
Invité de passage
![]() Inscription : février 2009 Messages : 25 ![]() |
Merci pour vos réponses à bientôt.
|
|
|
00
|
Copyright © 2000-2012 - www.developpez.com