Decrease time needed to CREATE INDEX and FOREIGN KEY on new tablecolumn which has all values NULL - Mailing list pgsql-general

From Denisa Cirstescu
Subject Decrease time needed to CREATE INDEX and FOREIGN KEY on new tablecolumn which has all values NULL
Date
Msg-id MWHPR12MB1664CD85ECAB0420396FF210E6980@MWHPR12MB1664.namprd12.prod.outlook.com
Whole thread Raw
Responses Re: Decrease time needed to CREATE INDEX and FOREIGN KEY on new tablecolumn which has all values NULL  (Ravi Krishna <srkrishna@fastmail.com>)
Re: Decrease time needed to CREATE INDEX and FOREIGN KEY on newtable column which has all values NULL  (Alvaro Herrera <alvherre@2ndquadrant.com>)
List pgsql-general

Hello all,

 

I am trying to add a new column to a really big table and to define an INDEX and a FOREIGN KEY on that new column using the following instructions:

 

ALTER TABLE Employee ADD COLUMN DepartmentId INTEGER;

CREATE INDEX IDX_Employee_DepartmentId ON Employee(DepartmentId);

ALTER TABLE Employee ADD CONSTRAINT FK_Employee_Department FOREIGN KEY(DepartmentId) REFERENCES Department(DepartmentId);

 

The table is huge and it takes a lot of time to add the INDEX and the FOREIGN KEY although all values are NULL.

Considering that the new DepartmentId column is NULL for all rows at this point, is there a way to make the INDEX and FOREIGN KEY creation run faster?

 

See below information about the size of the table and also the size of its associated Primary Key and Indexes:

              Employee                        339 GB

              Employee_PKEY              46 GB

              IDX_Employee_JobId     46 GB

              IDX_Employee_IsWFH   46 GB

 

 

Thank you,

Denisa Cîrstescu

pgsql-general by date:

Previous
From: Achilleas Mantzios
Date:
Subject: Re: PostgreSQL logical replication depends on WAL segments?
Next
From: Ravi Krishna
Date:
Subject: Re: Decrease time needed to CREATE INDEX and FOREIGN KEY on new tablecolumn which has all values NULL