Talking out of ignorance, but why is MySQL so dominant in big companies? why do these companies choose MySQL over Postgresql? I see people bashing MySQL all the time because of Oracle, but technically, is MySQL less capable than Postgres? Would it be wrong to start a new business on MySQL?
MySQL used to suck a lot more some years ago (tip of the iceberg: no transaction support!), the Oracle business is small potatoes compared to numerous earlier shortcomings that lead to data loss left and right.
Inertia explains the current MySQL position reasonably well, a better question is how did it climb to its current position during its years of technical incompetence.
> Inertia explains the current MySQL position reasonably well, a better question is how did it climb to its current position during its years of technical incompetence.
Existing, and having an better install story and windows support than PostgreSQL. When it established its dominance, it wasn't because it was the best open-source multi-user relational database in terms of spec sheet features, it was because it was the one people trying to start something could easily setup and get something running with, which quickly led to it being widely supported on shared hosts and having a large base of people with at least some experience, which then created a nice positive feedback loop to maintain its popularity.
Oh god, "no transaction support". I wish anyone mentioning that would check, what was the last version missing it and when was it released.
As for "how did it climb" the answer is simple: replication. Working replication was available in MySQL years ago too. Not perfect, but working.
Big companies usually do have competent people who make informed decisions, not based "I've read on the internet that PG is the real DB and MySQL is just a toy".
> why do these companies choose MySQL over Postgresql?
There's been a perception for a long time that MySQL was "more lightweight" than traditional RDBMS's and therefore "faster", the same thinking that perpetuates NoSQL solutions today.
Originally Postgres didn't even support SQL. mSQL was developed as an SQL interface to Postgres in the mid 90s. When it turned out Postgres was dog slow on the old-ass hardware the devs were using they just implemented their own lightweight db and mSQL became the top pick for new OSS-based systems. But mSQL was commercially licensed, so MySQL was created for personal use. Since it reused the same API as mSQL, everyone just adopted MySQL as a 'drop-in' replacement. So MySQL is lightweight and fast and free and Postgres is a dog slow incumbent.
I guess you could compare it to how many people feel Java is a humongous pig that can't scale and PHP is fast and lightweight. And obviously lots of sites use PHP. But some shops choose Java because they want something PHP can't offer. (Note: this is not a fair comparison to MySQL and Postgres in any way, but it shows the weird 'feelings' people get for different software)
But also: MySQL has more DBAs, a higher number of installations, more 3rd party support, bigger user/dev community, and in general is more popular.
> technically, is MySQL less capable than Postgres?
Each has individual technical benefits and drawbacks the other doesn't have.
> Would it be wrong to start a new business on MySQL?
What, like, ethically?
MySQL is just a tool. I could 'bash' a table knife by saying it's a dull, heavy piece of shit compared to some other knife, but guess what? Everyone uses table knives. They don't typically use them to debone fish, however. Look at your use case and pick the tool you feel comfortable with that fits it best.