Няма значение, открих проблема.
Планировчикът на заявки беше по-умен от моя тест играчка; като видя, че повечето редове съвпадат със заявката, отиде за последователно сканиране.
Ако опитам с ilike '%nd 0%'
вместо това нито един ред не съвпада и EXPLAIN ANALYZE докладва Bitmap Index Scan on test3_value_trgm_idx
правилно.
Така че нормализирането на оригиналния JSONB по този начин работи. Но също така ще се опитам да намеря и сравня друг начин, използвайки регулярни изрази върху TEXT
, за да избегнете необходимостта да създавате и поддържате друга таблица.