Gineadóir UUID v7

Gineann luachanna UUID v7 ar líne: UUIDanna in-sraithe de réir ama le stampa ama milleasoicind 48 giotán agus 74 giotán randamach.

Formáid
IDanna Ginte
Réidh. Ginfidh luachanna UUID v7 i do bhrabhsálaí.

Conas a thógtar an ID seo

Leagan amach
Stampa ama milleasoicind Unix 48 giotán, giotáin leagan 7, giotáin leagain RFC agus líonadh randamach.
Eantrópacht
74 giotán randamach sa chur i bhfeidhm seo; níl aon chuntar aontonach ann.
Am
Is ea. Ionchódaíonn an chéad 48 giotán an t-am cruthaithe, mar sin sórtáiltear IDanna de réir ama thar mhilleasoicindí difriúla.
Riosca imbhuailte
Laistigh de mhilleasoicind amháin, braitheann imbhuailte ar 74 giotán randamach; ba cheart go n-úsáidfeadh líon thar a bheith ard sa milleasoicind céanna seirbhís ID chomhordaithe.
Sampla
01a044bc-5b16-77d2-a5b6-22b62d7fc73a

Gintear do chuid IDanna go háitiúil le randamacht láidir brabhsálaí. Ní sheoltar aon rud chuig BroBroGo.

Ceisteanna Coitianta

Cén fáth a roghnófaí UUID v7 in ionad UUID v4?

Coinníonn UUID v7 cruth an UUID ach sórtálann sé de réir ama, rud a chabhraíonn le logaí, innéacsanna bunachar sonraí agus sruthanna imeachtaí fanacht in ord croineolaíoch garbh.

An gceileann UUID v7 an t-am cruthaithe?

Ní hea. Is cuid den ID é an stampa ama. Úsáid UUID v4 nó NanoID má theastaíonn aitheantóir teimhneach uait gan sonraí ama.

Cad é UUID v7 agus conas a oibríonn sé?

Is éard is UUID v7 ann ná aitheantóir uathúil 36 carachtar a chomhcheanglaíonn stampa ama 48 giotán de chuid Unix (i milleasoicindí) le seicheamh randamach de 74 giotán. Tá an fhormáid seo caighdeánaithe faoi RFC 9562, agus is é an príomhdhifríocht idir é agus UUID v4 ná go bhfuil an chéad 12 charachtar (tar éis an ghreamaithe) bunaithe ar an am a cruthaíodh an t-aitheantóir. Mar sin, má ghineann tú dhá UUID v7 i rith na milleasoicindí céanna, beidh an chéad chuid den dá cheann comhionann – ach fanann an chuid eile fíor-randamach. Ní ráthaíonn an uirlis seo ordú docht laistigh den mhillleasoicind chéanna, rud a fhágann gur féidir leat líon mór aitheantóirí a chruthú go comhthreomhar gan coinbhleacht.

Nuair a roghnaíonn tú UUID v7 ar an leathanach seo, gineann an brabhsálaí gach aitheantóir go háitiúil ag baint úsáid as crypto.getRandomValues(). Is é sin an fhoinse randamachta is láidre atá ar fáil i mbrabhsálaithe nua-aimseartha, agus cinntíonn sé nach mbíonn aon sonraí ag taisteal chuig freastalaithe BroBroGo. Is féidir leat foirceannadh idir 1 agus 100 aitheantóir ag an am, agus athghineann aon athrú ar na roghanna (líon, cás uachtair, fleiscíneacha) an liosta ar an toirt. Déanann sé seo an uirlis an-éifeachtach le húsáid i dtimpeallachtaí forbartha nó nuair a theastaíonn uait buthshraith aitheantóirí a fháil go tapa.

An fáth a bhfuil sórtáil ama tábhachtach do bhunachair shonraí

Is minic a bhíonn fadhbanna ag bunachair shonraí a úsáideann UUID v4 mar eochracha príomhúla, go háirithe maidir le hinnéacsú B-crann. Ós rud é go bhfuil UUID v4 go hiomlán randamach, athraíonn na heochracha nua gach áit san innéacs, rud a chruthaíonn ilroinnt – caithfidh an bunachar sonraí leathanaigh innéacs a scoilteadh agus a athshocrú go minic. Bíonn tionchar diúltach aige seo ar fheidhmíocht na n-oibríochtaí INSERT agus ar an bpróiseáil iomlán.

Le UUID v7, tá an chéad chuid den eochair bunaithe ar an am. Ciallaíonn sé sin go dtagann eochracha nua le chéile in ord ama in aice le chéile san innéacs. Mar shampla, má tá tú ag taifeadadh imeachtaí i gcóras teachtaireachtaí nó i dtábla fardail, beidh na taifid is déanaí le fáil ar leathanach innéacs amháin. Laghdaíonn sé seo an gá atá le leathanaigh a scoilteadh agus feabhsaíonn sé feidhmíocht léitheoireachta do cheisteanna raoin ama.

Ní mór a thabhairt faoi deara, áfach, nach ráthaíonn UUID v7 ordú docht laistigh den mhillleasoicind chéanna. Má ghineann tú go leor aitheantóirí ag an am céanna, d'fhéadfadh siad teacht san innéacs in aon ord randamach laistigh den mhillleasoicind sin. Ach i gcleachtas, is annamh a chruthaíonn tú níos mó ná cúpla aitheantóir in aghaidh na milleasoicind, mar sin is beag an tionchar. I gcásanna ina dteastaíonn ordú beacht fiú laistigh den mhillleasoicind chéanna, b'fhéidir gurbh fhearr duit ULID nó seicheamh atá díorthaithe ón am a úsáid.

UUID v7 i gcomparáid le UUID v4, ULID, agus NanoID

Tá roinnt roghanna eile ar fáil chun aitheantóirí ama-ordaithe a ghiniúint, agus tá a láidreachtaí agus laigí féin ag gach ceann acu. Seo comparáid ghairid:

Formáid Fad (carachtair) Stampa ama Ordú Slándáil
UUID v7 36 48 giotán (milleasoicind) Gaolmhar le ham, ach gan ordú docht laistigh den mhillleasoicind Ard (randamacht chripteagrafach)
UUID v4 36 Gan aon Randamach Ard
ULID 26 48 giotán (milleasoicind) Ordú docht laistigh den mhillleasoicind (croineolaíocht) Meánach (randamacht neamhchripteagrafach i roinnt leabharlann)
NanoID 21 (de réir réamhshocraithe) De rogha (le leabharlann) Ag brath ar shocrú Athraíonn

Is é an príomhbhuntáiste a bhaineann le UUID v7 ná go bhfuil sé caighdeánaithe ag IETF (RFC 9562), rud a fhágann go bhfuil sé furasta é a úsáid le córais eile. Ina theannta sin, tá an chuid randamach láidir go leor le go mbeadh sé dodhéanta buille faoi thuairim a thabhairt ar an aitheantóir. Tá ULID níos giorra agus ráthaíonn sé ordú docht laistigh den mhillleasoicind, ach níl sé chomh leathan le húsáid. Mar sin féin, má tá ort líon mór aitheantóirí a ghiniúint in aghaidh an tsoicind, b'fhéidir gurbh fhearr leat ULID.

Gnéithe an uirlis seo: comhaireamh, cás uachtair, fleiscíneacha

Tá an uirlis deartha le bheith simplí agus díreach. Is féidir leat líon na n-aitheantóirí a theastaíonn uait a roghnú (idir 1 agus 100) agus ansin an toradh a fheiceáil ar an toirt. Tá dhá lasc ann:

  • Cás uachtair: Má chasann tú é seo air, taispeántar na haitheantóirí i gceannlitreacha (m.sh., 0194B2C3-D7E6-4F8A-9B0C-1D2E3F4A5B6C). Mura bhfuil sé air, tagann siad i gceannlitreacha beaga. Tá an rogha seo úsáideach nuair a theastaíonn uait comhoiriúnacht le córas áirithe a éilíonn cás uachtair.
  • Fleiscíneacha a chur san áireamh: De réir réamhshocraithe, tá fleiscíneacha ann (mar a fheictear i bhformáid chaighdeánach UUID). Má mhúchann tú é seo, gintear na haitheantóirí gan aon fleiscín, rud a fhágann go bhfuil siad 32 carachtar ar fad (m.sh., 0194b2c3d7e64f8a9b0c1d2e3f4a5b6c). Tá sé seo úsáideach i stóráil nó i bprótacail nach nglacann le fleiscíneacha.

Nuair a athraíonn tú aon cheann de na roghanna seo, gintear an liosta arís go huathoibríoch. Cliceáil ar aon aitheantóir aonair chun é a chóipeáil chuig an ngearrthaisce, nó cliceáil ar an gcnaipe "Cóipeáil go léir" chun an liosta iomlán a chóipeáil. Taispeántar stádas "Ginte" nó "Cóipeáil go léir!" chun aiseolas a thabhairt.

Giniúint áitiúil sa bhrabhsálaí – príobháideacht agus slándáil

Ceann de na buntáistí is mó a bhaineann leis an uirlis seo ná go dtarlaíonn gach giniúint go hiomlán i do bhrabhsálaí féin. Ní sheoltar aon cheann de na haitheantóirí go dtí freastalaí tríú páirtí. Úsáideann an uirlis an API crypto.getRandomValues(), atá ar fáil i ngach brabhsálaí nua-aimseartha agus a sholáthraíonn randamacht chripteagrafach fíor. Ciallaíonn sé seo:

  • Ní féidir le haon duine eile na haitheantóirí a fheiceáil tar éis duit iad a ghiniúint.
  • Níl aon riosca ann go sceitheadh sonraí íogaire trí nasc líonra.
  • Oibríonn an uirlis fiú nuair a bhíonn tú as líne (tar éis duit an leathanach a lódáil uair amháin).

Mar sin féin, ní mór duit a bheith cúramach nuair a úsáideann tú aitheantóirí uathúla i dtimpeallachtaí a éilíonn dlíthe príobháideachta dian (m.sh., GDPR). Cé nach bhfuil aon fhaisnéis phearsanta sna haitheantóirí féin, d'fhéadfaí iad a úsáid mar phíosaí fianaise i dtimpeallachtaí logála. Bí cinnte go bhfuil polasaithe soiléire ag do chóras chun a leithéid a bhainistiú.

Teorainneacha agus cásanna imeall: ordú laistigh den mhillleasoicind chéanna

Mar a luadh cheana, is é an teorainn is tábhachtaí maidir le UUID v7 ná nach ráthaíonn sé ordú docht laistigh den mhillleasoicind chéanna. Tarlaíonn sé seo toisc go bhfuil an stampa ama bunaithe ar an am córais, agus má ghineann tú dhá aitheantóir chomh gar sin go mbíonn an stampa ama mar an gcéanna, beidh na giotáin randamacha ina n-aonar ag cinneadh an ordú. I dtéarmaí praiticiúla, is annamh a bhíonn sé seo ina fhadhb, mar is ar éigean a ghineann tú níos mó ná cúpla aitheantóir in aghaidh na milleasoicind.

Ach má tá tú ag dearadh córas a phróiseálann na mílte imeacht in aghaidh an tsoicind (m.sh., stocmhalartán nó ardán físeán beo), b'fhéidir go mbeadh ort réiteach eile a úsáid. Sna cásanna sin, is fearr ULID a úsáid, a chuireann comhartha tuilleamaí (monotonic) leis an am nó a úsáideann seicheamh atá neamhspleách ar an am. Nó is féidir leat UUID v7 a úsáid fós ach glacadh leis an bhféidearthacht go mbíonn dhá aitheantóir as ord i gcomhthéacs an mhillleasoicind chéanna.

Ní mór a thabhairt faoi deara freisin nach bhfuil an uirlis seo oiriúnach chun aitheantóirí a ghiniúint le haghaidh córais ina dteastaíonn uathúlacht dhomhanda gan choinbhleacht (cosúil le hiontrálacha bunachair shonraí i dtimpeallacht scáilithe). Is féidir le dhá chóras atá ag rith go neamhspleách an stampa ama céanna a fháil agus an chuid randamach a bheith comhionann go teoiriciúil, cé gur thar a bheith neamhdhóigh é seo de bharr 74 giotán randamach. Le 100 aitheantóir de gach uair, níl aon riosca suntasach ann.

Ceisteanna Coitianta

C: Cén fáth nach bhfuil ordú docht laistigh den mhillleasoicind ag UUID v7?
F: Toisc go n-úsáideann UUID v7 an stampa ama mar an chéad chuid, ach má ghintear dhá aitheantóir sa mhillleasoicind chéanna, tá na giotáin randamacha ag cinneadh an ordú. Ní chuireann an caighdeán RFC 9562 aon mheicníocht tuilleamaí (monotonic) i bhfeidhm chun é seo a réiteach.

C: An féidir liom UUID v7 a úsáid in ionad UUID v4 i mo bhunachar sonraí?
F: Is féidir i bhformhór na gcásanna, go háirithe má tá tú ag úsáid PostgreSQL nó MySQL. Gheobhaidh tú feabhas ar fheidhmíocht innéacsaithe mar gheall ar an ordú ama, ach ní mór duit a chinntiú go dtacaíonn do bhunachar sonraí leis an bhformáid 36 carachtar.

C: An bhfuil an uirlis seo saor in aisce?
F: Tá. Gintear gach aitheantóir go hiomlán sa bhrabhsálaí, gan aon chostas nó clárú.

C: Cé mhéad aitheantóir is féidir liom a ghiniúint ag an am?
F: Idir 1 agus 100. Is féidir leat an líon a athrú trí úsáid a bhaint as an roghnóir uimhreach.

C: An bhfuil na haitheantóirí fíor-randamach?
F: Sea, úsáideann an uirlis an API crypto.getRandomValues(), a sholáthraíonn randamacht chripteagrafach ón ngléas crua-earraí.

C: Cén difríocht atá idir UUID v7 agus ULID?
F: Tá UUID v7 36 carachtar ar fad (le fleiscíneacha) agus úsáideann 122 giotán ar fad. Tá ULID 26 carachtar (gan fleiscíneacha) agus úsáideann 128 giotán, ach níl sé chomh coiteann i gcaighdeáin. Ráthaíonn ULID ordú docht laistigh den mhillleasoicind trí chomhartha tuilleamaí, ach níl na haitheantóirí chomh slán i dtaca leis an randamacht i roinnt leabharlann.