
Excellent, but
....does anyone actually use any MariaDB products?
"We saw the dark clouds for a long, long while," MariaDB Foundation CEO Kaj Arnö told The Register. Arnö was reflecting on the last couple of years dealing with MariaDB plc, the commercial company that provides services, SaaS products, and other software around the core open source database the foundation oversees. An ill- …
Institutionally we are on MySQL still, however I believe we have and are flirting with Maria but probably as a price negotiation tactic.
I know postgres is in development but it's several decades worth of automation, monitoring and institutional knowledge to overcome before postgres can win. Basically, no one has a killer need to switch yet.
I do have them running a critical production cluster for a well-known brand, yes.
I'm incredibly happy with their support. They don't always have the answer at hand, but they listen to me, understand the question, and do their best (and they've done several bug fixes and RFEs following my tickets over the years).
if you are using linux, and the mysql included with it, you may be using MariaDB and not even realize it
https://mariadb.com/kb/en/distributions-which-include-mariadb/
Can't really compare(IMO) postgres to maria/mysql, unless you are building the app to support one or the other. Most apps I've encountered in the past 20 years tend to support just one or two DB products, rarely have I seen one that supports postgres and mysql, though I'm sure they are out there.
So it comes down to what DBs does the app(s) you use support, also what you are most comfortable supporting. Wouldn't suggest abandoning one DB engine whatever it is for another unless you are ready/able to take on the new one. Postgres and MySQL are very different animals. (I say that as someone who has primarily a mysql background, and I'm NOT a DBA, but postgres is radically different from an day to day management standpoint)
Most Linux distros have nothing by default. Unless you're installing a premade stack, it's likely that your distro did not include any database engine by default because, for anyone who isn't planning to use one, it's a bunch of files and services that use up resources for no reason. In the package repositories will be several options for database engines. People may choose a database because they already have one installed for something else so they'll just use that, but I don't think anyone's picking one because it's preinstalled.
Most new applications these days usually rely on some form of abstraction between the actual database and the app code. ORMs such as Django, Prisma, SQLAlchemy for instance. In those cases, it likely won't matter too much.
If the app needs to scale tremendously, MariaDB is a better bet long term, relying on better replication options.
You don't use an ORM if you want performance.
And there are lots of enormous Postgres deployments out there: it scales fine, just ask Amazon or Google. It might be a bit of work and it might cost something but if you're in the situation where you need it then that shouldn't matter. Better than having to worry about fixing your data because indices have been corrupted, again.
MySQL used to be faster because it didn't do ACID properly (it wasn't designed to), which meant fast writes and reads but also table locks if you wanted to change things. This also meant a smaller memory footprint which was great for embedded stuff. Nowaways, SQLite has pretty much taken over this space: it's very fast and, if you can live with the documented restrictions, it's fine. Postgres was always a better RDBMS than MySQL and achieved performance parity over a decade ago and has since exceeded it in many situations since then through extensions (Columnar store, GeoDIS, choice of languages for server processing, etc.) and updates to SQL (CTEs, Recurson, etc.)
In summary, go with Postgres unless you have a very good reason not to.
If you're thinking of a very basic, general case, there's no substantial difference. Either database will do the job just fine for your run-of-the-mill single database website.
When you do need to scale however...
There are many use cases when MariaDB is better than Postgres. Postgres still uses the process model for connections and execution, which means that you are limited by how many concurrent connections you can have. This is not a problem in MariaDB thanks to the threaded model.
The query optimizers for MariaDB and Postgres are different. One works better in some cases while the other works better in different cases. For most use general queries where indexes are required anyway, they both perform fine.
Replication is fundamentally different in MariaDB than in Postgres, where MariaDB offers far more flexibility in replication setups. Data consolidation for example, by replicating from multiple masters into the same table.
There are also a number of Storage Engines available, depending on the desired workload - RocksDB for less writes on SSDs, Spider for sharding, Connect for accesing external tables, S3 for storing data into any S3 capable storage (AWS S3 is one example), ColumnStore for real-time analytics.
"Is there any good reason these days to choose MariaDB or MySQL over Postgres?"
Most things that run off docker and this thing called WordPress.
Most places are shifting to OpenLiteSpeed and MariaDB so that both are server and DB are multi-threaded. Apache and Nginx are being dropped everywhere.
Most companies want even more performance and less latency so caching has become a massive issue and there are lots of companies looking for a in-memory database which saves to disk but most where open source projects until a few years ago when they all suddenly switched to extremely expensive paid SAAS.
WordPress will happily run on Postgres it's a question of installing a driving and a plugin. It's not as if WordPress has ever had any non-standard query code and it's still a security nightmare.
But the question was about application development, which is as likely to feature Geodata, GraphQL, real time analytics, Arrow, external data sources. Years ago, MySQL had the better marketing department, now there are plenty of companies who will help you set Postgres up to what you need. It's not a coincidence the Amazon has started touting its own Oracle to Postgres migration services.
I know what they mean it just makes me think they need to let go of that concept
---
Despite the plc's decision to ditch SkySQL, Arnö said users of the MariaDB DBaaS would not struggle to find a new home as AWS Relational Database Service offers a MariaDB service, as do other cloud providers. He said the plc was likely to have another attempt at providing its own database service.
"It's so evident that all databases need a cloud version. You're not the proper database if you don't have a cloud version," he said.
---
that person says in one breath there are MariaDB cloud services out there already so their strategy instead should be working with those companies to make those services better and get a cut of the sales. Not that think such providers would be too open to that(some would be), but it's better than trying to go head to head, especially after ditching their recent cloud stuff. Customers are going to be even more weary that it will happen again, unless MariaDB finds a load of cash that they can run services at a loss for years for, since that is likely what it will take.
Isn't that more or less what the article says? They're collaborating with AWS who provide Aurora which I suspect will mean that it will eventually use more MariaDB and less MySQL. Perhpas I'm wrong but I guess that's why they're sponsoring MariaDB.
AWS is not just sponsoring MariaDB Foundation with money, but also contributions. They are the largest contributor (behind MariaDB Plc of course).
The improvements they make in MariaDB will trickly down to Amazon's MariaDB RDS offering.
I think the difference is that the non profit(?) foundation is driving that partnership with amazon not the for-profit entity.
The for profit entity obviously has some proprietary cloud sql stuff(skysql and that other thing), should have made a better effort to partner as a technology partner and not try to make their own cloud service(running on top of someone else's cloud), that's a no win scenario unless you have bucketloads of cash which they obviously don't have.
Look at Splunk, running at a loss every year since they were founded and have $3B in debt. Also look at ....snowflake? I think they have something similar (building a cloud on top of another cloud), I'm not a financial person but their recently quarterly report implies to me almost a $300M loss for the quarter https://investors.snowflake.com/news/news-details/2023/Snowflake-Reports-Financial-Results-for-the-Second-Quarter-of-Fiscal-2024/default.aspx