Re: Need help in database design
Ron Johnson <ronljohnsonjr@gmail.com>
From: Ron Johnson <ronljohnsonjr@gmail.com>
To: pgsql-general <pgsql-general@postgresql.org>
Date: 2024-12-23T17:18:59Z
Lists: pgsql-general
As I expected.
Next:
1) Will all 50 of those k/v pairs be populated when you insert the record?
2) Will there be updates?
3) In each row, will some of those 50 pairs stay empty?
4) When querying a row, will the app care about all 50 k/v pairs at the
same time, or just one -- or even some -- of them?
On Mon, Dec 23, 2024 at 12:07 PM Divyansh Gupta JNsThMAudy <
ag1567827@gmail.com> wrote:
> Each row have a PK (gdid) that will uniquely refrence 50 k/v pair set
>
> On Mon, 23 Dec 2024, 10:35 pm Ron Johnson, <ronljohnsonjr@gmail.com>
> wrote:
>
>> How do you uniquely reference each set of 50 k/v pairs?
>>
>> On Mon, Dec 23, 2024 at 12:01 PM Divyansh Gupta JNsThMAudy <
>> ag1567827@gmail.com> wrote:
>>
>>> Sure , for example, I have 50 key with name as t1 , t2 ,t3 .......t50
>>>
>>> Now each key could have values from 0 to 3
>>>
>>> So let suppose we have JSONB like that for row r1
>>>
>>> {
>>>
>>> t1: 1
>>>
>>> t2: 2
>>>
>>> t3 : 3
>>>
>>> }
>>>
>>>
>>> As if I convert it into columns so r1 will have
>>>
>>> t1 column will contain 1
>>>
>>> t2 column will contain 2
>>>
>>> ...... So on
>>>
>>>
>>> So here my question is considering one JSONB column is perfect or
>>> considering 50 columns will be more optimised.
>>>
>>>
>>>
>>> On Mon, 23 Dec 2024, 10:24 pm Adrian Klaver, <adrian.klaver@aklaver.com>
>>> wrote:
>>>
>>>> On 12/23/24 08:46, Divyansh Gupta JNsThMAudy wrote:
>>>> > Also as you ask how 50 pairs turns into 50 column so each column will
>>>> be
>>>> > a key and the value of that key will store inside their respective
>>>> > column for each row
>>>>
>>>> My problem with understanding this is 50 pairs = 100 values, I don't
>>>> understand how that can fit in 50 columns that can only handle 1 value
>>>> each. You need to provide some example data showing what you want to
>>>> achieve. It does not need to be the full 50, just something to show the
>>>> process.
>>>>
>>>>
>>>> >
>>>> >
>>>> > On Mon, 23 Dec 2024, 10:14 pm Divyansh Gupta JNsThMAudy,
>>>> > <ag1567827@gmail.com <mailto:ag1567827@gmail.com>> wrote:
>>>> >
>>>> > As per the discussion with other team members they suggested if we
>>>> > store 50 values for keys in an individual column that will provide
>>>> > better performance as the data type is native (INT2) on the other
>>>> > hand if we store all the key value pair in a single JSONB column
>>>> the
>>>> > performance will degrade even after applying a GIN index on that
>>>> > however the statement sounds funny but I want to take everyone
>>>> openion?
>>>> >
>>>> >
>>>> > On Mon, 23 Dec 2024, 10:05 pm Adrian Klaver,
>>>> > <adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>>
>>>> wrote:
>>>> >
>>>> > On 12/23/24 07:53, Divyansh Gupta JNsThMAudy wrote:
>>>> > > Hii Community,
>>>> > >
>>>> > > I need to provide a support for some functionality for my
>>>> > application
>>>> > > for that I need to store 50 key value pair set, so I am in
>>>> a
>>>> > dilemma,
>>>> > > weather I create 50 new columns of int2 data type each
>>>> column
>>>> > will
>>>> >
>>>> > This is unclear, I am trying to figure out you go from '50 key
>>>> > value
>>>> > pair set' to '50 new columns of int2'.
>>>> >
>>>> > In other words how 50 pairs turn into 50 columns?
>>>> >
>>>> > Then there is the question of why 50 keys per row in the first
>>>> > place?
>>>> >
>>>> >
>>>> > > contain value of a specific key or should I go with JSONB
>>>> > data type with
>>>> > > 50 key value pair, the table on which I am going to do that
>>>> > all contains
>>>> > > 1 Billion rows of data and have 84 hash partitions, I have
>>>> > gone through
>>>> > > multiple articles some of them mentioned it's a good
>>>> approach
>>>> > to create
>>>> > > 50 new columns and some states that creating one JSONB
>>>> would
>>>> > be best
>>>> > > that's why I need your help to move forward, also I am
>>>> ready
>>>> > to make
>>>> > > H-Store instead of JSONB if it provides better performance.
>>>> > > Please help me to comes out from that dilemma.
>>>> > >
>>>> > > Regards,
>>>> > > Divyansh Gupta,
>>>> > > Database Administrator
>>>> >
>>>> > --
>>>> > Adrian Klaver
>>>> > adrian.klaver@aklaver.com <mailto:adrian.klaver@aklaver.com>
>>>> >
>>>>
>>>> --
>>>> Adrian Klaver
>>>> adrian.klaver@aklaver.com
>>>>
>>>>
>>
>> --
>> Death to <Redacted>, and butter sauce.
>> Don't boil me, I'm still alive.
>> <Redacted> lobster!
>>
>
--
Death to <Redacted>, and butter sauce.
Don't boil me, I'm still alive.
<Redacted> lobster!