Is there a fundamental difference between a primary key and a unique index?  
Currently we have primary keys on tables that have significant amounts of 
updates performed on them, as a result the primary key indexes are becoming 
significantly bloated.  There are other indexes on the tables that also become 
bloated as a result of this, but these are automatically rebuild periodically 
by the application (using the concurrently flag) when read usage is expected to 
be very low.

We don't want to remove the unique constraint of that the primary key is 
providing, but the space on disk will continue to grow unbounded so we must do 
something.  Can we replace the primary key with a unique index that could be 
rebuilt concurrently, or would this be considered bad design?  The reasoning 
behind this would be that the unique index could be rebuilt concurrently 
without taking the application down or exclusively locking the table for an 
extending period of time.  Are there other advantages to a primary key outside 
of a uniqueness constraint and an index?

Reply via email to