Thanks a lot Magnus for the reply. I understand that jsonb_path_ops creates index on the whole path or on all the attributes.
Does it takes more storage or reduces write performance in comparison to normal gin index ? On Tue, Mar 29, 2022 at 2:19 PM Magnus Hagander <mag...@hagander.net> wrote: > > > On Tue, Mar 29, 2022 at 7:06 AM Saurav Sarkar <saurav.sark...@gmail.com> > wrote: > >> Hi All, >> >> We use JSONB /NoSQL functionality of PostgreSQL. >> >> One of the column "doc" in our table "Table1" is of type JSONB. >> >> Now the rows in this column "doc" can have different values with >> different schemas. >> >> For e.g values of doc per row will be something like below >> >> ROW1 = {"id":"1", "name":"abc" } >> ROW2 = {"id:"2" , "address": "address1"} >> ROW3= {"id":"3" , "name":"def", "country":"country1" } >> >> So you can see the JSON is changing and keys/schema can be different for >> each rows. >> >> During the course of time indexes will be created for the json keys of >> the JSON values in this column. >> For e.g. on "name", "address" , "country" now. Later I can have another >> key and index like on "continent". >> >> As per postgresql limitations there are limits on the indexes. So I >> understand we can create many indexes. >> >> But obviously I understand creating many indexes will impact write >> performance and space will be utilized. >> >> Would like to know if creating indexes in this manner can create any >> other issues or inputs on the whole topic of indexes in JSONB types. >> > > You should not be creating indexes for every individual field if you have > those needs. You should create one index, using GIN and probably > jsonb_path_ops. > > Take a look at > https://www.postgresql.org/docs/current/datatype-json.html#JSON-INDEXING > > -- > Magnus Hagander > Me: https://www.hagander.net/ <http://www.hagander.net/> > Work: https://www.redpill-linpro.com/ <http://www.redpill-linpro.com/> >