Re: Marc Cousin 2018-04-30 <4f125945-e979-1f9e-a39b-a4bf5a4eca6b@gmail.com>
> Hi
>
> I've been investigating a performance "problem" with uuid generation
> https://jasonaowen.net/blog/2017/Apr/13/benchmarking-uuids-v2/, which I
> couldn't reproduce on my computer while it occurred on my servers. After
> a few tests, it seems to come from uuid-ossp being replaced with
> libuuid… when linking postgresql with uuid-ossp I get the exact same
> performance between uuid_generate_v4 and gen_random_uuid. When linking
> with libuuid, I get the same results as those displayed in the linked
> webpage (I can provide numbers).
>
> Is this an expected difference ?
It also depends which uuid "version" you are generating"
=# explain analyze select uuid_generate_v1() from generate_series(1, 1000000);
Function Scan on generate_series (cost=0.00..12.50 rows=1000 width=16) (actual time=129.701..6847.020 rows=1000000
loops=1)
Planning time: 0.071 ms
Execution time: 6921.871 ms
=# explain analyze select uuid_generate_v4() from generate_series(1, 1000000);
Function Scan on generate_series (cost=0.00..12.50 rows=1000 width=16) (actual time=123.784..5164.752 rows=1000000
loops=1)
Planning time: 0.073 ms
Execution time: 5203.226 ms
=# explain analyze select gen_random_uuid() from generate_series(1, 1000000);
QUERY PLAN
Function Scan on generate_series (cost=0.00..12.50 rows=1000 width=16) (actual time=121.428..1908.190 rows=1000000
loops=1)
Planning time: 0.070 ms
Execution time: 1947.951 ms
I can't say if this is expected, or if the libuuid performance is just
worse, or if maybe the libuuid UUIDs are generated using stronger
crypto.
Is that performance difference a problem for you in practise?
Christoph