Re: Column order in multi column primary key - Mailing list pgsql-general

From Craig Boucher
Subject Re: Column order in multi column primary key
Date
Msg-id 0da301d1f1b8$0e0218f0$2a064ad0$@wesvic.com
Whole thread Raw
In response to Re: Column order in multi column primary key  (Tom Lane <tgl@sss.pgh.pa.us>)
Responses Re: Column order in multi column primary key  (Kevin Grittner <kgrittn@gmail.com>)
List pgsql-general
Thanks Tom for the link.

It could actually be beneficial if we need to migrate a customer from one
database to another because wouldn't have to worry about pk constraint
violations.

Craig

-----Original Message-----
From: Tom Lane [mailto:tgl@sss.pgh.pa.us]
Sent: Monday, August 8, 2016 1:47 PM
To: Craig Boucher <craig@wesvic.com>
Cc: 'David G. Johnston' <david.g.johnston@gmail.com>;
pgsql-general@postgresql.org
Subject: Re: [GENERAL] Column order in multi column primary key

"Craig Boucher" <craig@wesvic.com> writes:
> I should have pointed out in my last response that I was wondering if the
performance of the pk index on work_session would be better if my primary
key was (customer_id, work_session_id) or if (work_session_id,  customer_id)
will be fine.  Customer_id will be repeated quite a bit in the table but
work_session_id should be unique across the whole table.

You almost certainly want the more-unique column first, so far as the
performance of the index itself goes.  See
https://www.postgresql.org/docs/9.5/static/indexes-multicolumn.html

Having said that, I'm pretty skeptical of the notion of redefining what your
PK is on performance grounds.  With this definition, you'd allow two entries
with the same work_session_id, if they chanced to have different
customer_ids.  Is that really OK?

            regards, tom lane



pgsql-general by date:

Previous
From: Tom Lane
Date:
Subject: Re: Column order in multi column primary key
Next
From: Kevin Grittner
Date:
Subject: Re: Column order in multi column primary key