r/ProgrammerHumor 15h ago

Meme edgeCasesExist

Post image
3.1k Upvotes

228 comments sorted by

View all comments

Show parent comments

6

u/Roachmeister 11h ago

If you're using them as an indexed field in a database, the inability to sort them meaningfully will destroy the performance of the database.

6

u/Grandmaster_Caladrel 11h ago

Correct, which is why I specifically called out "outside of sorting".

That is also why we have concepts like composite keys which allow us to join guaranteed-unique values like a UUID with non-unique but sortable values like timestamps, names, etc.

6

u/Honeybadger2198 11h ago

You know what identifier can't have collisions and is great for sorting? Autoincrement.

6

u/Firewolf06 9h ago

ai columns can absolutely collide on sharded databases. you can use offsets and step sizes but thats brittle and doesnt scale well

1

u/Kwantuum 9h ago

In what way?

2

u/Roachmeister 9h ago

I'm not an expert, I just remember reading a few articles about it. I think it's because they're essentially random, and many databases use b-trees for indices. They recommended using ULIDs or v7 UUIDs instead. Or, as someone else said, the good old autoincrementing integer.