Ką sudaro UUID v7
UUID v7, standartizuotas RFC 9562, prasideda 48 bitų Unix laiko žyme milisekundėmis, po to eina 12 bitų papildomo tikslumo ar atsitiktinumo ir 62 bitų atsitiktinė uodega. Versijos nibble (13-a pozicija) visada yra 7, o varianto nibble (17-a pozicija) — 8, 9, a arba b. Kadangi laiko žymė yra priekyje, vėliau sukurti ID kaip paprastas tekstas visada rikiuojasi po ankstesnių — duomenų bazės sekos nereikia.
Pavyzdys: 018f3d9c-7b21-7a4e-9c30-6d5f1e2a8b44. Pradžia 018f3d9c7b21 yra dabartinis laikas milisekundėmis, skaitmuo 7 žymi 7 versiją, skaitmuo 9 žymi variantą, o uodega yra atsitiktinė. Iš eilės einantys UUID v7 yra monotoniški tos pačios milisekundės ribose, nes lygiąsias sprendžia atsitiktinis skaitiklis, todėl jie tvarkingai pridedami B-medžio indekso gale, o ne išsibarsto. Rinkis v7 pirminiams raktams ir įvykių žurnalams; rinkis atsitiktinį v4, kai ID neturi atskleisti sukūrimo laiko.
Kaip sukurti UUID v7
- Spausk „Generuoti“, kad sukurtum laiko tvarka rikiuojamą UUID v7.
- Sukurk kelis iš eilės — jie rikiuosis sukūrimo tvarka.
- Nukopijuok juos kaip rikiuojamus pirminius raktus ar žurnalo ID.
- Reikia neskaidrių ID be tvarkos? Atidaryk UUID v4 puslapį.
UUID v7 — dažnai užduodami klausimai
Ar UUID v7 reikšmės rikiuojamos?
Taip. Pirmieji 48 bitai yra laiko žymė milisekundėmis, todėl leksikografinė tvarka sutampa su sukūrimo tvarka; atsitiktinė uodega neleidžia vienalaikėms reikšmėms sutapti.
Ar UUID v7 atskleidžia sukūrimo laiką?
Taip, jis parodo sukūrimo laiką milisekundės tikslumu. Žurnalams ir duomenų bazės raktams tai paprastai priimtina, bet jei laiko žymė jautri, naudok v4.
Duomenų bazės raktui — v4 ar v7?
v7: jo sutvarkytas prefiksas laiko įterpimus indekso gale ir išvengia puslapių skilimo, kurį sukelia atsitiktinės v4 reikšmės. Rinkis v4, jei reikia visiškai neskaidrių ID.
Veikia visiškai naršyklėje: laiko žymė ir atsitiktiniai bitai imami iš tavo įrenginio laikrodžio ir crypto.getRandomValues(), o ne iš serverio.
