Skip to main content


ยซULID - die bessere UUIDยป

Nicht wirklich neu aber spannend und ja weder ich noch Coder die ich persรถnlich kenne haben dies bis jetzt angewenden aber UUIDv7. Ob nun ein ablegen eines UIIDv5 รผber XOR mit einer ULID einen Sinn ergibt bezweifele ich, da es (ein wenig) anonymer ist aber nicht mehr unbedingt einzigartig in der Datenbank sein kann. Ist ULID ein UUIDv7 "Ersatz", wie seht ihr es?

๐Ÿ†” pep-digital.de/blog/ulid-anstaโ€ฆ

#uuid #ulid #xor #uuidv5 #uuidv7 #code #id #db #uniqueID #datenbanken #unique

in reply to ๐•‚๐šž๐š‹๐š’๐š”โ„™๐š’๐šก๐šŽ๐š•

Naja... fangen wir mal mit dem Debunken an:

"Performance Probleme bei Verwendung von โ€žclustered indexesโ€œ."

Ja. Nein. Beim *Schreiben* ist das so. Der Lookup eines Schlรผssels wรคre eher schneller, wenn รผberhaupt.

Du legst einen auf Lookup optimierten Index an und benutzt das um viel zu Schreiben? Da machst Du etwas falsch. Aber die Verwendung von UUID ist nicht der Fehler.

1/n

in reply to Jens Finkhรคuser

Wird dieses Problem bei ULIDs gelรถst?

Jein. Ja, aber nur wenn Du beim Schreiben primรคr in aufsteigender Zeitstempelreihenfolge schreibst. Wenn Du ULIDs von irgendwoher in irgendeiner Reihenfolge bekommst und schreibst, performen die genau wie UUIDs.

Wieder: der Fehler ist, einen clustered Index fรผr etwas zu verwenden, wo man viel sequentiell rein schreibt.

in reply to Jens Finkhรคuser

Es klingt so, als ob da jemand eigentlich eine time series database will.

Events werden da erst in ein Log geschrieben, also nur angehรคngt. Das geht schnell.

Dann werden die events an die richtige Stelle im Index gesetzt, und mit den umliegenden komprimiert.

Dadurch ergibt sich nicht nur schneller Lookup durch den Index, sondern auch schneller Lookup dadurch, das zeitlich zusammenhรคngende Daten in weniger Speicher geladen und durch die Gegend geschubst werden.

in reply to Jens Finkhรคuser

Die Logs sind eigentlich bei Datenbanken รผblich, die Komprimierung fรผr time series eher untypisch.

Aber wenn Du den Anwendungsfall hast, dann nimm halt eine passende DB, und dann braucht es auch keine ULID.

Nuja. Kann man schon machen. Weiss bloรŸ nicht ganz, warum.

โ‡ง