Most active commenters

    ←back to thread

    264 points davidgomes | 19 comments | | HN request time: 0.001s | source | bottom
    Show context
    paulryanrogers ◴[] No.41875055[source]
    Upgrades are hard. There was no replication in the before times. The original block-level replication didn't work among different major versions. Slony was a painful workaround based on triggers that amplified writes.

    Newer PostgreSQL versions are better. Yet still not quite as robust or easy as MySQL.

    At a certain scale even MySQL upgrades can be painful. At least when you cannot spare more than a few minutes of downtime.

    replies(7): >>41875126 #>>41876174 #>>41876232 #>>41876375 #>>41877029 #>>41877268 #>>41877959 #
    api ◴[] No.41875126[source]
    I've always wondered why Postgres is so insanely popular. I mean it has some nice things like very powerful support for a very comprehensive subset of SQL functionality, but most apps don't need all that.

    It really feels like early 1990s vintage Unix software. It's clunky and arcane and it's hard to feel confident doing anything complex with it.

    replies(9): >>41875168 #>>41875240 #>>41875306 #>>41875587 #>>41876346 #>>41876770 #>>41877119 #>>41877951 #>>41878394 #
    1. justin_oaks ◴[] No.41875240[source]
    > It really feels like early 1990s vintage Unix software. It's clunky and arcane and it's hard to feel confident doing anything complex with it.

    How software "feels" is subjective. Can you be more specific?

    replies(3): >>41875286 #>>41875625 #>>41877469 #
    2. threeseed ◴[] No.41875286[source]
    The command line experience is old school style i.e. to show tables.

      \c database
      \dt
    
    Versus:

      use database
      show tables
    replies(4): >>41875328 #>>41875350 #>>41875573 #>>41875689 #
    3. dventimi ◴[] No.41875328[source]
    That's psql.
    4. fhdsgbbcaA ◴[] No.41875350[source]
    It’s also faster to type.
    replies(1): >>41876111 #
    5. rootusrootus ◴[] No.41875573[source]
    I assume this is really what it comes down to. If psql added those verbose-but-descriptive commands a whole bunch of people comfortable with mysql would be a lot happier using postgres.
    6. dalyons ◴[] No.41875625[source]
    It requires a ton of somewhat arcane maintenance at scale. Vacuum shenanigans, Index fragmentation requiring manual reindexing, Txid wraparounds. I like Postgres but it’s definitely way more work to maintain a large instance than mysql. MySQL just kinda works
    7. georgyo ◴[] No.41875689[source]
    I started with MySQL in 2006 for my personal projects, but what first won me over to psql was those commands.

    Today I use CLIs like usql to interact with MySQL and SQLite so I can continue to use those commands.

    At first glance they may be less obvious, but they are significantly more discoverable. \? Just shows you all of them. In MySQL it always feels like I need to Google it.

    replies(1): >>41876427 #
    8. eYrKEC2 ◴[] No.41876111{3}[source]
    Not after you have to google, "What's the equivalent of `show tables` in postgres?", because the psql command names are completely arbitrary.
    replies(5): >>41876166 #>>41877357 #>>41878020 #>>41878561 #>>41884086 #
    9. fhdsgbbcaA ◴[] No.41876166{4}[source]
    Which you need to do exactly once.
    replies(1): >>41876478 #
    10. stephenr ◴[] No.41876427{3}[source]
    > At first glance they may be less obvious, but they are significantly more discoverable. \? Just shows you all of them. In MySQL it always feels like I need to Google it.

    In MySQL either `?` or `help` or `\?` will show you the help...

    11. kalleboo ◴[] No.41876478{5}[source]
    I need to manually admin my database server maybe once every 2 years or so. Definitely not remembering them 2 years later.
    replies(1): >>41889579 #
    12. ◴[] No.41877357{4}[source]
    13. arkh ◴[] No.41877469[source]
    Having to tinker with pg_hba.conf files on the server so manage how users can connect.
    replies(1): >>41878377 #
    14. Symbiote ◴[] No.41878020{4}[source]
    They are clearly abbreviations.

    \c is for connect.

    \dt is for describe tables.

    15. paulryanrogers ◴[] No.41878377[source]
    I'd agree that is annoying yet usually just a one off task, unless you really want different IP allowlists per user.
    replies(1): >>41880521 #
    16. mxey ◴[] No.41878561{4}[source]
    \? shows the help
    17. Tostino ◴[] No.41880521{3}[source]
    In complex environments it is not just a one off task. I dealt with it by automating my infrastructure with ansible, but without some tooling it sucks.
    18. ahoka ◴[] No.41884086{4}[source]
    They kinda make sense if you consider that Postgres was not an SQL database in the beginning. Quirky though.
    19. dventimi ◴[] No.41889579{6}[source]
    Sounds like a YP