التوليد 🔒 يعمل داخل متصفحك — لا تُرسل أي بيانات

مولّد UUID v7

أنشئ معرّفات UUID من النسخة 7 مرتّبة حسب وقت إنشائها، مثالية للمفاتيح الأساسية في قواعد البيانات.

المعرّفات المولَّدة
فحص UUID

توليد معرّفات UUID v7 المرتّبة زمنيًا

يجمع UUID v7 أفضل ما في العالمين: فهو فريد دون تنسيق مثل UUID العشوائي، ويُرتَّب حسب وقت الإنشاء مثل المعرّف ذي الزيادة التلقائية. ولهذا صار النسخة التي توصي بها معظم قواعد البيانات وأدوات ORM اليوم للمفاتيح الأساسية.

تفتح هذه الصفحة مولّد UUID مع اختيار النسخة 7. تأتي أول 48 بت من ساعة جهازك، ويأتي الباقي من المولّد العشوائي الآمن في المتصفح.

مخطط: أجزاء معرّف UUID من الإصدار 7 ‏01926f3a-7c2b-7d4e-9a1f-3b5c8d2e6f10: طابع زمني من 48 بت بالمللي ثانية، ورقم الإصدار 7، وبتات المتغير، و74 بتًا عشوائيًا.01926f3a-7c2b-7d4e-9a1f-3b5c8d2e6f10الإصدارالمتغيروقت يونكس (ms) · 480x01926f3a7c2b = 17284429568432024-10-09 03:02:36.843 UTC12بتات عشوائية · 6248 + 4 + 12 + 2 + 62 = 128
يبدأ UUID من الإصدار 7 بوقت إنشائه بالمللي ثانية، لذلك تُرتَّب المعرّفات الجديدة زمنيًا وتناسب فهارس قواعد البيانات. أول رقم في المجموعة الثالثة هو الإصدار، وأول رقم في المجموعة الرابعة يحمل بتات المتغير، والباقي عشوائي.

لماذا يهمّ الترتيب في قواعد البيانات

تخزّن معظم قواعد البيانات العلائقية المفاتيح الأساسية في بنية B-tree. والمفتاح العشوائي من v4 يقع في مكان ما وسط الفهرس مع كل إدراج، فيفرض انقسام الصفحات ويبعثر الصفوف المترابطة على القرص. أما مفتاح v7 فيكون دائمًا تقريبًا أكبر من سابقه، فتُضاف الصفوف الجديدة في النهاية، تمامًا كما في التسلسل العددي. وفي الجداول التي تضم ملايين الصفوف يكون الفرق كبيرًا في سرعة الإدراج وحجم الفهرس.

مقارنة v4 وv7 وULID

UUID v4UUID v7ULID
قابل للفرز زمنيًالانعمنعم
البتات العشوائية1227480
المعيارRFC 9562RFC 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.

أدلة ذات صلة