Jsonb - это тип данных PostgreSQL varlena - это означает, что когда значение превышает 2 КБ, оно сохраняется во вспомогательной таблице (называемой таблицей TOAST). Указатель на таблицу TOAST хранится в основной таблице. Поэтому, когда вы не касаетесь столбца Jsonb, это значение не читается.
Индекс GIN в этом случае не помогает. Это помогает только для поиска.
10 сек. При значениях 50 КБ - это длительное время - возможно, ваши значения Jsonb довольно длинные или ваша система ввода-вывода не работает должным образом. Пожалуйста, проверьте размер таблицы и проверьте производительность своего ввода-вывода. У дешевых облачных машин обычно ужасный IO.
Другая возможная причина замедления - сложность типа данных Jsonb. Jsonb - это сериализованное дерево суб-объектов json. Если вам не нужны какие-то особые функции типа данных Jsonb, используйте тип данных JSON. Это всего лишь тест (формат JSON проверяется только на входе). Вывод JSONB быстрее, чем Jsonb, потому что JSON является внутренним текстом, и никаких операций не требуется. Вывод Jsonb должен быть сериализован, что дороже.