• Imacat@lemmy.dbzer0.com
    link
    fedilink
    English
    arrow-up
    5
    arrow-down
    2
    ·
    5 months ago

    I was reading it as an endorsement for autoincrementing int primary keys and a condemnation of uuids in general which is a genuine stance I’ve known people to take. Is that not it?

    • froztbyte@awful.systems
      link
      fedilink
      English
      arrow-up
      8
      ·
      5 months ago

      indeed, that is not it

      hint: don’t try to “read in” any extra meanings. just read the actual statement that was posted.

        • Imacat@lemmy.dbzer0.com
          link
          fedilink
          English
          arrow-up
          3
          arrow-down
          2
          ·
          5 months ago

          Would they not have monotonic uuids after altering the code in the article to use a function or lambda as they suggested?

          • ebu@awful.systems
            link
            fedilink
            English
            arrow-up
            6
            arrow-down
            1
            ·
            edit-2
            5 months ago

            you might know what “monotonic” means if you had googled it, which would also give you the answer to your question

            edit: this was far too harsh of a reply in retrospect, apologies. the question is answered below, but i’ll echo it: a “monotonic UUID” is one that numerically increases as new UUIDs are generated. this has an advantage when writing new UUIDs to indexed database columns, since most database index structures are more efficient when inserting at the end than at a random point (non-monotonic UUID’s).

            • Imacat@lemmy.dbzer0.com
              link
              fedilink
              English
              arrow-up
              4
              arrow-down
              3
              ·
              5 months ago

              I’ve more of a math background than cs so monotonic is a word I know well but it apparently means something slightly different to me. Monotonicity isn’t mentioned anywhere in that link.

              • deborah@awful.systems
                link
                fedilink
                English
                arrow-up
                7
                ·
                5 months ago

                okay, for some reason, I feel the need to help.

                The given link defines the function that creates a UUID:

                uuid.uuid4(): Generate a random UUID.

                In mathematics, can you generate a monotonic function by generating random numbers?

                • Imacat@lemmy.dbzer0.com
                  link
                  fedilink
                  English
                  arrow-up
                  6
                  ·
                  5 months ago

                  Thanks for trying to explain it. I was hung up on thinking all UUIDs looked like UUID v4. I read up a little on UUID v7 and it’s making sense. Probably should’ve done that sooner.

                • ebu@awful.systems
                  link
                  fedilink
                  English
                  arrow-up
                  5
                  ·
                  5 months ago

                  you are probably a better person than i am for actually giving an explanation

    • JackbyDev@programming.dev
      link
      fedilink
      English
      arrow-up
      4
      arrow-down
      3
      ·
      edit-2
      5 months ago

      Everything after this is so pointlessly condescending and confusing. Even if someone knows what monotonic ids are it doesn’t automatically mean they’re going to have any clue about what that means with regards to index performance. In the spirit of not being an asshole, I’ll write it out here based on my research since everyone else just seems interested in putting others down rather than being helpful.

      • “Monotonic” implies something that is always increasing (or decreasing). You’ll never get a result that’s lower than one you’ve gotten before (or higher if you’re dealing with monotonically decreasing stuff).
      • Random UUIDs are not monotonic because they’re random.
      • Even time based UUIDs are not monotonic because of the format. Rather than being store high, medium, low, they’re stored low, medium, high. Think of it like storing numbers like “1 20 300” for 321. 322 would be “2 20 300”. To make it worse, the end of them is “random” (a MAC address). So, not monotonic at all because MAC addresses can change. (See here for proposed new formats, where they mention this as a problem https://www.ietf.org/archive/id/draft-peabody-dispatch-new-uuid-format-04.html)
      • Monotonic primary keys are useful because they’re more easily inserted into an index because you’re always inserting into one specific part of the index rather.
      • ebu@awful.systems
        link
        fedilink
        English
        arrow-up
        10
        ·
        edit-2
        5 months ago

        putting my 2¢ forward: this is a forum for making fun of overconfident techbros. i work in tech, and it is maddening to watch a massively overvalued industry buy into yet another hype bubble, kept inflated by seemingly endless amounts of money from investors and VCs. and as a result it’s rather cathartic to watch (and sneer at) said industry’s golden goose shit itself to death over and over again due to entirely foreseeable consequences of the technology they’re blindly putting billions of dollars into. this isn’t r/programming, this is Mystery Science Theater 3000.

        i do not care if someone does or does not understand the nuances of database administration, schema design, indexing and performance, and different candidates for the types of primary keys. hell, i barely know just enough SQL to shoot myself in the foot, which is why i don’t try to write my own databases, in the hypothetical situation where i try to engineer a startup that “extracts web data at scale with multimodal codegen”, whatever that means.

        if someone doesn’t understand, and they come in expressing confusion or asking for clarification? that’s perfectly fine – hell, if anything, i’d welcome bringing people up to speed so they can join in the laughter.

        but do not come in here clueless and confidently (in)correct the people doing the sneering and expect to walk away without a couple rotten tomatoes chucked at you. if you want to do that, reddit and hacker news are thataway.

      • slopjockey@awful.systems
        link
        fedilink
        English
        arrow-up
        7
        ·
        5 months ago

        Yeah, I’m all for dunking on promplets, but just being wrong about best practice isn’t a big deal. The reaction here is excessively harsh.

        • self@awful.systems
          link
          fedilink
          English
          arrow-up
          10
          ·
          5 months ago

          agreed. we’ve veered a bit too close to slashdot’s tone on this one.

          with that said, I’m also acutely aware of the tactics that programming.dev reply guys use to generate these kinds of responses. to our guests: it’s best to take your questions about database best practices literally anywhere else but here.

          • froztbyte@awful.systems
            link
            fedilink
            English
            arrow-up
            6
            ·
            5 months ago

            with that said, I’m also acutely aware of the tactics that programming.dev reply guys

            I wasn’t actually aware of this, and will be taking note of it in future. for my part I tried to make my reply “uhh go look at $x and learn” post without, y’know, overtly making things into a not-meant-for-here debate setup, but that didn’t seem to have worked out entirely well :)

        • V0ldek@awful.systems
          link
          fedilink
          English
          arrow-up
          9
          ·
          5 months ago

          Just to be clear, if a person is wrong about best practices then it’s not a big deal.

          In context of spicy autocomplete as coding assistance, it better output immaculate, robust code every fucking time or we should be clowning on it with zero remorse.

          • slopjockey@awful.systems
            link
            fedilink
            English
            arrow-up
            6
            ·
            5 months ago

            Wait a second…to err is to be human. Programmers err sometimes. ChatGPT shits itself all the time…😟. Yud et al. were right