je la requête suivante:index PostgreSQL pour jsonb @> Recherche
SELECT "survey_results".* FROM "survey_results" WHERE (raw @> '{"client":{"token":"test_token"}}');
EXPLAIN ANALYZE
renvoie les résultats suivants:
Seq Scan on survey_results (cost=0.00..352.68 rows=2 width=2039) (actual time=132.942..132.943 rows=1 loops=1)
Filter: (raw @> '{"client": {"token": "test_token"}}'::jsonb)
Rows Removed by Filter: 2133
Planning time: 0.157 ms
Execution time: 132.991 ms
(5 rows)
Je veux ajouter index sur client
clé à l'intérieur raw
champ de recherche ainsi sera plus rapide. Je ne sais pas comment le faire. Quand j'ajoute l'index pour toute la colonne raw
comme ceci:
CREATE INDEX test_index on survey_results USING GIN (raw);
alors tout fonctionne comme prévu. Je ne veux pas ajouter l'index pour l'entier raw
parce que j'ai beaucoup d'enregistrements dans la base de données et je ne veux pas augmenter sa taille.