This is a great callout. Most people running PG for serious production probably need pgbouncer which looks like it adds 35-50K lines. There's probably a few more 50K-ish plugins that are must haves for serious usage.
I don't know how many lines NDB is, but the lack of a standard failover mechanism and cluster manager in Postgres is a pain. The number of effective lines that the bespoke systems people build for that purpose is probably quite large.
I dont even think it should be an argument. Postgre by default, on itself without extension is anything but feature rich, especially when comparing to MySQL.
I like Postgre, and I know lots of people on HN do too, and I also know these same people absolutely hate oracle. But come on.
Sometimes these Hype and cult is just a little too much.
If you're a corporate DBA, they are each worlds apart.
MySQL is a perfect match for most SaaS applications that deal with compliance. Postgres is simply not.
The main issues with managing Postgres today are grant inheritance, and also the lack of COPY FROM/TO grants. I shouldn't have to update grants for non-admin or readonly users after adding new objects, and there needs to be the equivalent of MySQL's FILE grant for Postgres' COPY FROM/TO.
OTOH, it is easy to reason about MySQL grants, and almost pain-free to update them in production.
If anybody can send me a link on how to make Postgres work in a corporate and/or compliance environment, let me know.
Source: DBA.
I find this statement amazingly weird. In my experience, MySQL's access grants are extremely impoverished compared to Postgres (even in 8). It doesn't have row level security either.
> The main issues with managing Postgres today are grant inheritance
roles + `INHERIT` (which has been available since at least 8.1, 15 years ago)
> I shouldn't have to update grants for non-admin or readonly users after adding new objects
You don't. There are default grants that apply on object creation within a schema: `ALTER DEFAULT PRIVILEGES`.
Can you see if there is a grant similar to MySQL's FILE for COPY FROM/TO in Postgres? The last time I checked in early 2019, there wasn't.
Must you really draw conclusions about the suitability of PostgreSQL or MySQL for all users based on your limited perspective/niche needs?
> If you're a developer, a database is just a database.
[screams internally]
At bigger companies they might abstract it out but your gonna get a slow query one day and be tuning sql or something.
You're way out of date.
There's no storage concerns with the default since 2010 in MySQL, Innodb:
Please elaborate on this “simply not”.. you are making a categorical statement.. does there exist a DISA-certified STIG for MySQL, for DoD and military applications?
STIGs are hardening guidelines used the US Department of Defense.
There's been a Postgres STIG for, I dunno, "a while" now.
--
DISA: https://en.wikipedia.org/wiki/Defense_Information_Systems_Ag...
STIG: https://en.wikipedia.org/wiki/Security_Technical_Implementat...
MySQL has more replication features, different storage engines, etc. also in MySQL GIS functionality is included and not an external plugin (like PostGIS)
The source tree you looked at probably also has ndb cluster included; if you cloned from GitHub, you also get the MySQL Router and other side components.
MySQL also bundles most external dependencies (excluding for example boost)
Any serious discussion would require deeper analysis.
P.S. I work on the MySQL team, never looked at pgsql source, so can't really judge.