Re: Creating big indexes - Mailing list pgsql-general

From sud
Subject Re: Creating big indexes
Date
Msg-id CAD=mzVW3jYSYgHVJD0U6vgUnZKongkaszc_Rafv=75usomUUfQ@mail.gmail.com
Whole thread Raw
In response to Re: Creating big indexes  (Lok P <loknath.73@gmail.com>)
List pgsql-general


On Sun, Jun 9, 2024 at 1:40 PM Lok P <loknath.73@gmail.com> wrote:
On Sun, Jun 9, 2024 at 10:39 AM Lok P <loknath.73@gmail.com> wrote:


On Sun, Jun 9, 2024 at 10:36 AM sud <suds1434@gmail.com> wrote:

 You can first create the index on the table using the "On ONLY"keyword, something as below.

CREATE INDEX idx ON ONLY tab(col1);

Then create indexes on each partition in "concurrently" from multiple sessions in chunks.

CREATE INDEX CONCURRENTLY idx_1    ON tab_part1(col1);
CREATE INDEX CONCURRENTLY idx_2    ON tab_part2(col1);

After this step finishes the table level index which was created in the first step will be in valid state automatically.


Thank you so much.
Should we also tweak the parameters related to the parallelism and memory as I mentioned in the first post? 

Additionally ,is it also possible to drop the indexes also from the big partition table efficiently? To avoid the "transaction id wrap around" or "table bloat" when the index drop runs for longer duration?
 

I have never tried , but I think you can do "drop index concurrently" from multiple sessions at same time for each of the partitions to make the drop index finish quicker, similar to the "create index" statement as mentioned above. Others may comment.

pgsql-general by date:

Previous
From: "David G. Johnston"
Date:
Subject: Re: Unexpected Backend PID reported by Notification
Next
From: veem v
Date:
Subject: Re: Does trigger only accept functions?