داشتن distributed unique id یکی از الزامات خیلی رایجه distributed serviceهاست.
این مقاله یه بررسی خوبی در مورد عملکرد uuid v4 و v7 داشته که میتونید ازینجا بخونید.
https://dormoshe.io/trending-news/postgresql-uuid-performance-benchmarking-random-v4-and-time-based-v7-uuids-n9b-84866
در حال حاضر دیتابیس postgresql بصورت native از uuid v7 پشتیبانی نمیکنه، یا باید در سطح اپلیکیشن id رو تولید کنید و یا اینکه از extensionهایی مثل pg_uuidv7 استفاده کنید.
https://github.com/craigpastro/pg_uuidv7
اینکه id در سطح اپلیکیشن ساخته بشه یا دیتابیس ملاحظات مختلفی داره
مثلا برای uuid v7 که time-based هست حفظ درستی ساعت دیتابیس ممکنه راحت تر از حفظ درستی ساعت همه سرورهای اپلیکیشن باشه
مزیت دیگه اینکه سمت اپلیکیشن باشه اینه که تولید id وابسته به دیتابیس خاصی نیست و همچنین DB roundtrip برای تولید id رو هم حذف میکنه
برای زبان های مختلف هم میتونید از پکیج های مربوط به خودشون استفاده کنید
Go: https://github.com/google/uuid
python: https://pypi.org/project/uuid7
.NET 8+: Built-in support
@gocasts
Post #680
6.59K



- 👍 24
- ❤ 3