Macht nichts, ich habe das Problem gefunden.
Der Abfrageplaner war schlauer als mein Spielzeug-Testset; Da die meisten Zeilen mit der Abfrage übereinstimmen, wurde ein sequenzieller Scan durchgeführt.
Wenn ich es mit ilike '%nd 0%'
versuche stattdessen stimmen keine Zeilen überein und EXPLAIN ANALYZE meldet Bitmap Index Scan on test3_value_trgm_idx
richtig.
Das Normalisieren des ursprünglichen JSONB auf diese Weise funktioniert also. Aber ich werde auch versuchen, einen anderen Weg zu finden und zu vergleichen, indem ich reguläre Ausdrücke über TEXT
verwende , um zu vermeiden, eine weitere Tabelle erstellen und pflegen zu müssen.