From: | Stephen Frost <sfrost(at)snowman(dot)net> |
---|---|
To: | Israel Brewster <ijbrewster(at)alaska(dot)edu> |
Cc: | Ron <ronljohnsonjr(at)gmail(dot)com>, pgsql-general(at)lists(dot)postgresql(dot)org |
Subject: | Re: UUID or auto-increment |
Date: | 2020-08-10 17:16:29 |
Message-ID: | 20200810171629.GW29590@tamriel.snowman.net |
Views: | Raw Message | Whole Thread | Download mbox | Resend email |
Thread: | |
Lists: | pgsql-general |
Greetings,
* Israel Brewster (ijbrewster(at)alaska(dot)edu) wrote:
> > On Aug 10, 2020, at 8:53 AM, Stephen Frost <sfrost(at)snowman(dot)net> wrote:
> > * Ron (ronljohnsonjr(at)gmail(dot)com) wrote:
> >> On 8/10/20 11:38 AM, Ravi Krishna wrote:
> >>> Finally UUID results in write amplication in wal logs. Keep that in mind
> >>> if your app does lot of writes.
> >>
> >> Because UUID is 32 bytes, while SERIAL is 4 bytes?
> >
> > and because it's random and so will touch a lot more pages when you're
> > using it...
>
> I would point out, however, that using a V1 UUID rather than a V4 can help with this as it is sequential, not random (based on MAC address and timestamp + random). There is a trade off, of course, as with V1 if two writes occur on the same computer at the exact same millisecond, there is a very very small chance of generating conflicting UUID’s (see https://www.sohamkamani.com/blog/2016/10/05/uuid1-vs-uuid4/ <https://www.sohamkamani.com/blog/2016/10/05/uuid1-vs-uuid4/>). As there is still a random component, however, this seems quite unlikely.
Sure, that helps, but it's still not great, and they're still much, much
larger than you'd ever need for an identifier inside of a given system,
so best to map it to something reasonable and avoid them as much as
possible.
Thanks,
Stephen
From | Date | Subject | |
---|---|---|---|
Next Message | Adrian Klaver | 2020-08-10 17:24:01 | Re: SQL Question about like |
Previous Message | Israel Brewster | 2020-08-10 17:10:00 | Re: UUID or auto-increment |