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 : Sélectionner tout - Visualiser dans une fenêtre à part
CREATE INDEX doc_tsvector_idx ON docs USING gin (text_tsvector);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
              relname               |  reltuples  |  MB   
------------------------------------+-------------+-------
 doc_tsvector_idx                   | 4.93452e+08 |  3695