🆔
← العودة للأدلة

UUID v4 مقابل UUID v7 — أيهما يجب أن تستخدم؟

· وسوم: uuid-v7, uuid-v4, rfc-9562, database, primary-key

يعالج UUID v7، المُوحّد في RFC 9562 (مايو 2024)، نقطة الضعف الرئيسية لـ UUID v4: ضعف أداء فهرس قاعدة البيانات.

UUID v4 (عشوائي)

يستخدم UUID v4 122 بتًا عشوائيًا و 6 بتات ثابتة. هذا يضمن التفرد بدون تنسيق ولكنه ينتج معرفات مبعثرة عشوائيًا عبر الزمن. عند استخدامه كمفتاح رئيسي B-tree في قاعدة البيانات، تتسبب المعرفات العشوائية في تقسيم الصفحات وتجزئة الفهرس، مما يقلل من أداء الكتابة.

UUID v7 (مرتّب زمنيًا)

يستخدم UUID v7 طابعًا زمنيًا بنظام Unix بالميلي ثانية 48 بت متبوعًا ببتات عشوائية. بادئة الطابع الزمني تجعل UUID قابلة للفرز طبيعيًا حسب وقت الإنشاء، مما يحل مشكلة تجزئة B-tree. المفاتيح لا تزال فريدة عالميًا ويمكن إنشاؤها بدون تنسيق.

مقارنة

| | UUID v4 | UUID v7 | |---|---------|---------| | المعيار | RFC 9562 | RFC 9562 | | قابل للفرز | لا | نعم (حسب الوقت) | | أداء قاعدة البيانات | ضعيف | جيد | | فريد | نعم | نعم | | يكشف الطابع الزمني | لا | نعم (دقة الميلي ثانية) |

توصية: استخدم UUID v7 للمفاتيح الرئيسية لقاعدة البيانات و UUID v4 عندما لا تريد الكشف عن وقت الإنشاء صراحةً. جرب كليهما في أداة إنشاء UUID.

UUID v4 مقابل UUID v7 — أيهما يجب أن تستخدم؟ - CoolTool