- Ein speziell für PostgreSQL entwickelter Indexzugriffsansatz (IAM), der für die schnelle Verarbeitung von String-Suchen mit vielen Wildcards konzipiert ist
- Ergänzt die Grenzen von
pg_trgm, bei dem unnötige Heap-Zugriffe und Performance-Verluste strukturell auftreten können
- Verwendet einen Bitmap Position Index auf Basis von Zeichen und Positionen, um Kandidatenergebnisse durch Bitmap-Operationen im Speicher präzise zu filtern
- Für Suchergebnisse ist kein Heap-Recheck nötig, wodurch unnötiges Random I/O entfällt
- Verarbeitet Prefix-, Suffix- und Substring-Muster effizient über eine bidirektionale Indexstruktur (positive / negative), die sowohl vordere als auch hintere Positionen von Strings indiziert
- Trennt intern den eigenen Indexpfad für ILIKE für case-insensitive Suchen, um zugleich Genauigkeit und Performance sicherzustellen
- So konzipiert, dass nicht nur einzelne Spalten, sondern auch LIKE-Bedingungen über mehrere Spalten mit einem einzigen Index verarbeitet werden können
- Analysiert die Musterselektivität jeder Spalte und ordnet die Ausführungsreihenfolge automatisch neu an
- Liefert auch bei komplexen Mustern mit gemischten
%- und _-Wildcards deterministische Suchergebnisse ohne False Positives
- Verbessert die Verarbeitungsgeschwindigkeit auch bei Aggregatabfragen wie COUNT oder EXISTS, indem unnötige Sortierung ausgelassen wird
- Implementiert auf Basis von Roaring Bitmap (CRoaring) und optimiert die Speichernutzung je nach Datendichte automatisch
- Unterstützt
ORDER BY nicht direkt, integriert sich aber natürlich mit dem Planner, sodass die Sortierung erst erfolgt, nachdem die Ergebnismenge verkleinert wurde
- Unterstützt keine regulären Ausdrücke, Ähnlichkeitssuche oder locale-basierte Collation; stattdessen ist das Design konsequent auf die Performance von LIKE / ILIKE spezialisiert
Noch keine Kommentare.