Documentation PostgreSQL 8.2.23 > Internes > Index GIN > Conseils et astuces sur GIN | |
Implémentation | Limitations |
Dans la plupart des cas, l'insertion dans un index GIN est lent à cause de la probabilité d'insertion de nombreuses clés pour chaque valeur. Donc, en cas de nombreuses insertions dans une table, il est conseillé de supprimer l'index GIN et de le re-créer après l'opération d'insertion.
La raison principale qui a poussé le développement des index GIN a été la création du support des recherches de texte complet dans PostgreSQL™ et il arrive fréquemment qu'une recherche renvoie un gros ensemble de résultats. De plus, ceci arrive souvent quand la requête contient des mots très fréquents, de telle façon qu'un gros ensemble de résultats n'est même pas utile. La lecture des lignes du disque et leur tri prend beaucoup de temps, ce qui est une situation inacceptable en production. (Notez que la recherche dans l'index est en soi très rapide.)
Pour faciliter l'exécution contrôlée de telles requêtes, GIN a une limite supérieure souple configurable sur la taille de l'ensemble renvoyée, le paramètre de configuration gin_fuzzy_search_limit. Par défaut, il est configuré à 0 (c'est-à-dire sans limite). Si une limite différente de 0 est renvoyée, alors l'ensemble renvoyé est un sous-ensemble du résultat complet, choisi au hasard.
« Douce » (Soft) signifie que le nombre réel des résultats renvoyés pourrait être légèrement différent de la limite spécifiée, suivant la requête et la qualité du générateur de nombres aléatoires du système.