Hey, Threadiverse! I’m looking for informed opinions on database choices.
I can stand up an Internet-facing application and have it use either MySQL or PostgreSQL. Which is the better choice, and why do you think so?
Thanks!
The only reason I wouldn’t go with Postgres is if I planned to do other things on the same machine. MariaDB/MySQL has been around forever. You may find something that requires it — Wordpress1, for example, requires MariaDB (or MySQL but use MariaDB) and doesn’t support Postgres.
Also, there’s solutions like Docker containers if you are running multiple things on the same server. But if you’re just learning and putting one thing on a Raspberry Pi as a project or whatever, you don’t need to learn Docker yet.
1 I’m not recommending Wordpress. It’s ancient and has security issues all the time. But over 40% of sites on the Net still use it in some form. (I mean Wordpress.org, the open source project. The Wordpress company seems to be having some “crazy CEO” drama at the moment.)
PostgreSQL is the more feature rich, but if you don’t care about all those features like saving and searching in json structures, Geo data structures and a to of other stuff because you have a simple APO then MySQL is good enough, maybe even SQLite.
Postgres also had the advantage of great support for JSON elements, which gives you the power of a no-sql system like mongo in the package. A major selling point if your schema is evolving.
As someone that admins hundreds of MySQL at work, I’d go with PostgreSQL.
Same.
Yeah, every time I find some weird annoying behavior or some missing feature in MySQL, PostgreSQL is doing it right.
That said, also ask yourself if you really need a relational database, or whether an object store or append-only / timeseries db would fit better.
Another vote for Postgres, MySQL kind of blows.
Postgres is a more robust and better designed and developed product, also it’s not owned by fucking Oracle.
Choosing is not so much about whether it’s internet facing or not. From the programmer’s perspective and an administrator’s perspective there are pros and cons to both. As someone looking to self-host, if you want to run a service that works with either, I would make the choice based on what seems the most supported, or which one you feel the most comfortable looking up and performing administrative tasks on. I tend to use postgresql more just because I have more experience with it and can recommend it if that’s what you need, but mysql can be just as good or better in many circumstances. Pick whichever one looks easier to you.
Maria database is free and open source. It uses MySQL format.
Maria is MySQL. More specifically it is a fork with many additional features.
Maria database is free and open source.
Why are you implying that PostgreSQL isn’t?
Well mySQL certainly is not, I judge this to be a correct statement!
Actually, really good point. Sorry, person-I-responded-to. I thought you (PIRT) were comparing Maria to Postgres, when you (PIRT) were referring to Maria vs MySQL.
Both PostgreSQL and MariaDB are OSS and free; MySQL is covered with cooties and boogers, and you don’t want to get any of it on you.
Hi, I’m actually the guy you’re trying to respond to but yes that is exactly what I was trying to State
Absolutely depends on what do you want it for and what resources can you apply on it (learning, set-up, etc).
That said, MySQL is owned by Oracle. The more-or-less blessed alternative IIRC is MariaDB.
It’s not My SQL, it’s Orcales.
TheirSQL
Who’sSQL?
You aren’t exposing the database right?
As somebody who just watched a team implement MySQL for an app that only supported Postgres, I’d go with Postgres.
I never want to use MySQL again. Postgres or SQLite for relational databases.
Ha! My deepest experience with postgres was watching it fall over and wedge daily when run behind red hat’s satellite (the flailing lame foreman one, not spacewalk).
Wow, was it ever a dog. Yeah, I get it: the company who shat Systemd on the planet can’t be asked to do much better, but still.
So, you fucked up and it’s postgres’ fault?
PostgreSQL is just better. It’s supports transactions on DDL (things like altering table structure) and enforces unique constraints after transactions complete … so you can actually do a bunch of important stuff (like update your table structure or swap unique values between rows) safely.
I’d vote for MariaDB or Postgres
My opinion is that of the two Postres is more “adult”. So if you want to"just wing it" MariaDB would work, but if you’re serious Postgres is a better choice. However Postgres also requires better understanding of you setup etc. So it’s a ROI game - what’s more important to your project, how complex your DB is, what are the requirements for availability, transaction security etc. There is no “better” or “worse” there’s “feasible” and “prohibitive” 😉
Hardly anyone ever says mysql is better. Postgres has a lot of nice features, But they’re still a hell of a lot more people out there with mySQL experience.
If for some reason you really want to go mysql I would urge you to look into percona and percona tools. It’s incredibly fast super optimized. The tools let you do backups that my sequel could only dream of.
That said, if you don’t have any strong needs for mySQL, and you don’t have any experience with it I would probably start picking up postgres.