Précédent   Forum des professionnels en informatique > Bases de données > PostgreSQL
PostgreSQL Forum PostgreSQL. Avant de poster -> F.A.Q PostGreSQL Tutoriels PostGreSQL
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 16/01/2012, 11h43   #1
Modérateur
 
Avatar de ymoreau
 
Homme Yoann Moreau
Ingénieur en laboratoire de recherche
Inscription : septembre 2005
Messages : 724
Détails du profil
Informations personnelles :
Nom : Homme Yoann Moreau
Âge : 26
Localisation : France, Vaucluse (Provence Alpes Côte d'Azur)

Informations professionnelles :
Activité : Ingénieur en laboratoire de recherche
Secteur : Enseignement

Informations forums :
Inscription : septembre 2005
Messages : 724
Points : 1 130
Points : 1 130
Par défaut Deux index identiques, mais nombre de lignes différent

Bonjour, j'ai créé un index sur une colonne de type tsvector. Pour des essais de performances j'ai recréé le même index (avec un nouveau nom) après avoir modifié la configuration du serveur. Je me retrouve avec deux index dont la taille est identique (normal) mais où le nombre de tuples est différent.

J'ai fait un vacuum avant de revérifier les comptes, mais la différence est toujours là. Pourtant les données d'origine sont strictement les mêmes. Comme la taille est la même, c'est vraiment étrange. La seule différence est que la première création n'avait pas assez d'espace en mémoire et a été très longue (40h), et pas la seconde (34min). La différence en nombre de lignes est énorme : 3 millions contre 493 millions.

Code :
CREATE INDEX doc_tsvector_idx ON docs USING gin (text_tsvector);
Code :
1
2
3
4
5
6
SELECT relname, reltuples, relpages * 8 / 1024 AS "MB" FROM pg_class ORDER BY relpages DESC;
 
              relname               |  reltuples  |  MB   
------------------------------------+-------------+-------
 doc_tsvector_idx2                  | 4.93452e+08 |  3695
 doc_tsvector_idx                   | 3.56978e+06 |  3695
Peut être que le nombre de lignes des tables d'index n'est pas une information utilisable car leur structure est différente ? Peut être que créer un index sur une colonne déjà indexée est tellement absurde que postgresql a un comportement bizarre ?
Je ne compte de toute façon en garder qu'un seul bien sûr, c'est simplement par curiosité.

Pour info j'ai en fait fait plusieurs index identiques pour mes essais et seul le premier a un nombre de lignes différent des autres.

J'ai ensuite supprimé les deux index et j'en ai recréé un seul. Je retrouve encore un nombre différent du tout premier :
Code :
1
2
3
              relname               |  reltuples  |  MB   
------------------------------------+-------------+-------
 doc_tsvector_idx                   | 4.93452e+08 |  3695
ymoreau est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 16h10.


 
 
 
 
Partenaires

Hébergement Web