Re: jsonb value retrieval performance

From: Tom Smith <tomsmith1989sk(at)gmail(dot)com>
To: Teodor Sigaev <teodor(at)sigaev(dot)ru>
Cc: PostgreSQL General <pgsql-general(at)postgresql(dot)org>
Subject: Re: jsonb value retrieval performance
Date: 2015-09-08 20:18:44
Message-ID: CAKwSVFE1NSxF-=7RdXnQ5Y0DxdyP=BM7FzUKKeoL=aroECX1Zg@mail.gmail.com
Views: Raw Message | Whole Thread | Download mbox | Resend email
Thread:
Lists: pgsql-general

It can be any jsonb so I am asking a general question of the implementaion
for each jsonb storage (not about GIN or table wide indexing, but only
within
a single jsonb item in a single row.

A sample would be like (no quotes)

{
a1: {b1:v1, b2:v2, b100:v100}

a3000: {c1:x1, c2: x2. c200: v200
}

you get the idea. I wonder how postgresql does it when try

jsonb->a1->b1,

does it read in the whole jsonb tree structure in memory
and get to v1 or it has some optimization so only get v1 instead
of reading in the whole structure.

On Tue, Sep 8, 2015 at 11:58 AM, Teodor Sigaev <teodor(at)sigaev(dot)ru> wrote:

> and I am trying to get value via jsonb->parentKey->childKey
>> it seems it is very slow.
>> Would it be actually faster to use top level key only and parse it at
>> client side?
>>
>
> Suppose, most time is spent for decompressing huge value, not for actual
> search inside jsonb. If so, we need to implement some search method which
> decompress some chunks of jsonb.
>
>
> Could you send to me an example of that jsonb?
>
>
>
> --
> Teodor Sigaev E-mail: teodor(at)sigaev(dot)ru
> WWW:
> http://www.sigaev.ru/
>

In response to

Responses

Browse pgsql-general by date

  From Date Subject
Next Message Tom Smith 2015-09-08 20:24:17 Re: LATERAL query extreme slow due to partition
Previous Message Merlin Moncure 2015-09-08 19:51:58 Re: LATERAL query extreme slow due to partition