On dirait que les index Gin se comportent bien. Si je crée un index Gin sur la colonne des index, puis que je change la jointure en
ON t.indexes @> jsonb_build_object('Id', c.indexes -> 'parentId')
Et le Où aller
WHERE t.indexes @> jsonb_build_object('Id', h.pid)
Ce n'est pas aussi rapide que l'index purement fonctionnel, mais au moins il se mettra à jour dynamiquement, et le plan d'exécution n'a pas ce tri inutile
D'autres améliorations de performances peuvent être apportées en ajoutant l'indicateur d'index gin jsonb_path_ops