- Une méthode d’accès par index (IAM) dédiée à PostgreSQL conçue pour traiter rapidement les recherches de chaînes avec beaucoup de jokers
- Elle compense les limites de
pg_trgm, où des accès heap inutiles et des pertes de performance se produisent de manière structurelle
- Utilise un Bitmap Position Index basé sur les caractères et leur position afin de filtrer précisément les résultats candidats via des opérations bitmap en mémoire
- Aucun heap recheck n’est nécessaire sur les résultats de recherche, ce qui élimine les I/O aléatoires inutiles
- Une structure d’index bidirectionnelle (positive / negative) qui indexe à la fois les positions de début et de fin des chaînes pour traiter efficacement les motifs prefix, suffix et substring
- Sépare en interne un chemin d’index dédié à ILIKE pour les recherches insensibles à la casse, afin de garantir à la fois précision et performance
- Conçu pour prendre en charge non seulement une colonne unique, mais aussi des conditions LIKE sur plusieurs colonnes avec un seul index
- Analyse la sélectivité des motifs de chaque colonne et réordonne automatiquement l’ordre d’exécution
- Fournit des résultats de recherche déterministes sans faux positifs même avec des motifs complexes mêlant
% et _
- Améliore la vitesse de traitement en évitant les tris inutiles, y compris pour les requêtes d’agrégation comme COUNT et EXISTS
- Implémenté sur la base de Roaring Bitmap (CRoaring), avec une optimisation automatique de l’usage mémoire selon la densité des données
- Ne prend pas directement en charge ORDER BY, mais s’intègre naturellement au planner pour que le tri soit effectué une fois l’ensemble de résultats réduit
- Ne prend pas en charge les expressions régulières, la recherche de similarité ni la collation basée sur la locale, et se concentre à la place sur des performances spécialisées pour LIKE / ILIKE
Aucun commentaire pour le moment.