MySQL
Your quote says MySQL, and you're probably already running one
The short answer
MySQL is a free, open-source relational database, owned by Oracle since 2010, and the one sitting under most shared hosting and most WordPress sites. It stores your records in tables with defined columns and answers questions written in SQL. For ordinary business software it's an entirely credible choice.
There are two ways this word reaches you. It was in the hosting account before you arrived, quietly holding everything your website knows, or it's in a proposal next to another name you don't recognise while somebody explains why theirs is better. This is the boring part of the stack, and boring is most of the argument for it.
It's the filing cabinet, not the building
A database is where the facts sit when nobody is looking at them. Customers, orders, appointments, the text of every page. MySQL is the relational kind: facts live in tables with named columns, and every row has to fit a shape somebody defined in advance.
Nobody signs into it. There's no screen and no login for your staff. Your website is the only thing that talks to it, in a language called SQL, thousands of times a day.
So a proposal naming a database isn't describing anything you'll ever see. It's describing where your records go.
What a person sees
Public
A web page or an app screen. Most people never learn the database exists.
The application
The build
Your site or your software. The only thing that talks to the database.
MySQL
The database
Holds the tables, answers questions written in SQL, refuses the ones that break a rule.
Disk and backups
Nowhere else
The files MySQL writes, the copies taken on a schedule, and the test that proves they restore.
Why it's underneath almost everything
MySQL appeared in the mid 1990s: free, quick, easy to install, when the credible alternatives were expensive, difficult, or both. It got bundled with Linux and PHP into the arrangement everybody called the LAMP stack, and most of the early commercial web was built on that.
The consequence is still with you. Buy hosting anywhere, at any price, and a database of this family comes with it. WordPress won't run without MySQL or MariaDB, and neither will much of the PHP world around it. That ubiquity is an advantage rather than something to apologise for: a database every host offers, and several firms can quote on, is worth something the day somebody else picks your site up.
MySQL and MariaDB, and why you keep seeing both names
Sun Microsystems bought MySQL in 2008, and Oracle bought Sun in 2010, which put the most widely deployed open-source database in the hands of the company selling the best-known commercial one. Monty Widenius, who wrote the original, forked the code and named the fork MariaDB after his daughter.
For years the two stayed close enough that hosts swapped one for the other without telling anyone, and several major Linux distributions ship MariaDB as their default. That's why your host, your developer and your invoice can use different words for the same database and all be right.
They've drifted apart since. Each has features the other doesn't, and moving between current versions is a migration with testing rather than a swap. For an ordinary application it changes nothing you'd notice. Ask which one you're on, once, and write it down.
Where the PostgreSQL difference actually shows up
PostgreSQL is the other open-source relational database, and the one developers now reach for by preference. Stack Overflow's developer survey has put it ahead of MySQL for several years running. That's a real signal and the wrong thing to buy on: it measures what people would pick for a new project, not what your business already runs well.
Feature comparisons are mostly noise at this level. Both keep your records safely, both have been in serious production use for decades, both run on every major cloud as a managed service somebody else patches.
Three differences you'd feel. Cheap shared plans offer MySQL and often nothing else. WordPress and most of PHP assume MySQL, while many newer frameworks assume PostgreSQL, and arguing with either assumption costs time. At the edges, mapping work, unusual data shapes and heavy reporting alongside live traffic are where PostgreSQL pulls ahead.
MySQL
PostgreSQL
- Where it can run
MySQL: Runs almost anywhere, including hosting too cheap to have anyone watching it.
PostgreSQL: Runs on every serious platform, but rarely on budget shared plans.
- Who you can hire
MySQL: Larger pool, weighted to web generalists rather than data specialists.
PostgreSQL: Smaller pool, stronger on data work, slower to fill in a hurry.
- Unusual data
MySQL: Handles JSON and location data, less deeply.
PostgreSQL: Handles more shapes natively, with more for a team to learn.
- What your tools assume
MySQL: The default for WordPress and PHP, so newer framework guides fight you.
PostgreSQL: The default in newer frameworks, so WordPress and hosting guides fight you.
Where it stops, and who has to be watching it
The first ceiling is writing. One MySQL server serves an enormous amount of reading, and adding copies to spread that load is routine. Growing past what a single machine can write to means splitting your records across several machines, a project with a budget rather than a setting.
The second is that a database can't rescue a design. Sites are almost never slow because of which database sits underneath. They're slow because a question is asked in an expensive way, or once per row, or at all when the answer could have been kept.
The third isn't technical. Somebody has to hold the backups, know how long a restore takes, and be reachable the morning the site stops answering. Shared hosting means your host does most of that and you see none of it. A managed cloud database makes it a line on a bill. Your own server makes it a person's job.
Worth knowing before you start
Ask how long a full restore takes, not whether backups are running. That's the longest your business can be down, and most people have never timed it.
Find out whether your tables use InnoDB or MyISAM. InnoDB has been the default for years and rolls a half-finished change back. MyISAM can't, which is how a failed payment leaves a record behind it.
Ask which account your website connects with, and whether it can do more than read and write its own tables. Plenty of sites connect as an account that could drop every table it touches.
Before anyone quotes a move to a different database, ask which query is slow and get one measurement. A missing index is the usual answer, and that isn't a rebuild.
On shared hosting, ask what your storage limit is and how much the database uses. It stays invisible until a write fails.
Common questions
The community edition is, under the GPL, and that's what almost everyone runs. Oracle also sells a commercial edition, licensed separately for companies that can't accept the open-source obligations. Either way, what you pay month to month is hosting.
Quite possibly MariaDB, and probably it doesn't matter. It's a fork of MySQL started by the original author, and several major Linux distributions ship it as their default. Ask once and record the answer, because a guide written for one no longer applies exactly to the other.
Not automatically. On shared hosting or on WordPress the question barely arises. For a new application, if the team you're hiring prefers PostgreSQL, let them use it: a team fighting an unfamiliar database is a worse risk than either choice. It stops being a coin toss for mapping, unusual data shapes, and heavy reporting on live data.
The database itself is rarely what gets attacked. Real incidents come through the application in front of it, through credentials left in a file somebody could read, or through a database listening to the open internet when it should only answer your application.
Related
Want to talk through your situation?
A short call is usually enough to tell whether this is the right work for you. If it isn’t, we’ll say so.