Dmitry Dolgov <9erthalion6@xxxxxxxxx> writes: > On Wed, Apr 14, 2021 at 10:26:23AM -0400, Tom Lane wrote: >> My own guess about this, without having tried to reproduce it, is that >> JSONB might end up physically smaller than JSON, resulting in less work >> to push the toasted datum out to disk. This'd depend a lot on your >> formatting habits for JSON, of course. But in any case, it'd be worth >> comparing pg_column_size() results to see what's up with that. > Oh, of course I've missed that the input I was using was indeed > formatted, without formatting both cases perform equally well and I > can't reproduce the issue. Although if I understand correctly the > original code in question doesn't actually do any formatting. My point was that for JSON, after validating that the input is syntactically correct, we just store it as-received. So in particular the amount of whitespace in the value would depend on how the client had chosen to format the JSON. This'd affect the stored size of course, and I think it would have an effect on compression time too. regards, tom lane