مولّد UUID v7
أنشئ معرّفات UUID من النسخة 7 مرتّبة حسب وقت إنشائها، مثالية للمفاتيح الأساسية في قواعد البيانات.
توليد معرّفات UUID v7 المرتّبة زمنيًا
يجمع UUID v7 أفضل ما في العالمين: فهو فريد دون تنسيق مثل UUID العشوائي، ويُرتَّب حسب وقت الإنشاء مثل المعرّف ذي الزيادة التلقائية. ولهذا صار النسخة التي توصي بها معظم قواعد البيانات وأدوات ORM اليوم للمفاتيح الأساسية.
تفتح هذه الصفحة مولّد UUID مع اختيار النسخة 7. تأتي أول 48 بت من ساعة جهازك، ويأتي الباقي من المولّد العشوائي الآمن في المتصفح.
لماذا يهمّ الترتيب في قواعد البيانات
تخزّن معظم قواعد البيانات العلائقية المفاتيح الأساسية في بنية B-tree. والمفتاح العشوائي من v4 يقع في مكان ما وسط الفهرس مع كل إدراج، فيفرض انقسام الصفحات ويبعثر الصفوف المترابطة على القرص. أما مفتاح v7 فيكون دائمًا تقريبًا أكبر من سابقه، فتُضاف الصفوف الجديدة في النهاية، تمامًا كما في التسلسل العددي. وفي الجداول التي تضم ملايين الصفوف يكون الفرق كبيرًا في سرعة الإدراج وحجم الفهرس.
مقارنة v4 وv7 وULID
| UUID v4 | UUID v7 | ULID | |
|---|---|---|---|
| قابل للفرز زمنيًا | لا | نعم | نعم |
| البتات العشوائية | 122 | 74 | 80 |
| المعيار | RFC 9562 | RFC 9562 | مواصفة مجتمعية |
| يناسب عمود UUID | نعم | نعم | يحتاج إلى تحويل |
| يكشف وقت الإنشاء | لا | نعم | نعم |
استخراج الختم الزمني
الصق معرّف UUID v7 في أداة الفحص أسفل المولّد، فتفكّ الوقت المضمَّن فيه. ويمكنك فعل ذلك يدويًا: أول 12 خانة ست عشرية، دون الشرطة، هي عدد المللي ثواني منذ 1970. ففي 01926f3a-7c2b-7d4e-… تكون القيمة 0x01926f3a7c2b = 1728442956843، أي 9 أكتوبر 2024 الساعة 03:02:36.843 بالتوقيت العالمي (UTC).
UUID v7 برمجيًا
- PostgreSQL 18+:
uuidv7() - Python 3.14+:
uuid.uuid7() - Java: مكتبة
uuid-creator، عبرUuidCreator.getTimeOrderedEpoch() - Node.js: حزمة
uuid، عبرimport { v7 } from 'uuid' - .NET 9+:
Guid.CreateVersion7()
حين لا يهمّ الترتيب الزمني، يكشف UUID v4 معلومات أقل. وإن احتجت إلى تنسيق على طريقة مايكروسوفت، فراجع مولّد GUID.