Database

MySQL database development

MySQL runs an enormous share of the web, including most of the WordPress and Laravel estate. It is straightforward, fast on read-heavy workloads and supported by every host you might use.

Rated 4.9 on Clutch across 38 reviews

Where we use MySQL

MySQL is part of the stack on these 2 services. Each page covers how we work, what you get and what it costs to start.

MySQL in practice

MySQL runs an enormous share of the web, and its ubiquity is a practical advantage: every host supports it, every framework assumes it, and almost every backend developer can work with it. For read-heavy workloads with straightforward relationships it performs excellently and operates simply.

Where it gives ground to PostgreSQL is in constraint enforcement, advanced query features and JSON handling. That matters if your data model is complex or several services write to the same database. If neither is true, migrating an application that works is usually a cost with no return — we say so rather than recommending a project.

What we build with MySQL

The data layer behind WordPress, WooCommerce and custom PHP applications.

Products where most traffic is reads and replication is the natural way to scale.

RDS, Cloud SQL and Azure Database instances configured with backups, monitoring and a tested restore path.

Is MySQL right for you?

Ask us

A good fit when

  • WordPress, WooCommerce and PHP application backends
  • Read-heavy workloads that scale through replication
  • Teams and hosting already standardised on it
  • Straightforward relational models without exotic requirements

Probably not when

  • Complex analytical queries and heavy JSON work
  • Data models needing strict constraint enforcement
  • Workloads that would benefit from Postgres extensions

What we run alongside MySQL

The rest of the setup, and why each piece is there. We keep this list short on purpose — every dependency is something someone has to maintain.

InnoDB
The engine that gives you transactions and row-level locking. Not optional.
ProxySQL
Connection pooling and read/write splitting once replicas are in play.
Percona Toolkit
Schema changes on large tables without locking them out of service.
Managed hosting
RDS, Cloud SQL or Azure Database, so failover and backups are not your problem.
slow_query_log
The starting point for every performance investigation.

Why MySQL

Let’s talk

Universally supported

Every hosting provider, framework and ORM works with it, which keeps operational choices simple.

Fast reads

Well-indexed read workloads perform excellently, and replication for read scaling is well-trodden ground.

Easy to staff

Almost every backend developer can work with it, so operational knowledge is never concentrated in one person.

What we get called in to fix

Get a second opinion

Missing or wrong indexes

The dominant cause of slow MySQL. Often a composite index in the wrong column order.

SELECT * everywhere

Fetching every column including large text fields, on pages that display three of them.

Replication lag

Reads hitting a replica that is behind, so users see their own writes disappear.

utf8 that is not UTF-8

Legacy schemas on utf8mb3, which breaks emoji and some scripts. A migration, but a well-trodden one.

MySQL or the alternative

The comparisons we are actually asked to make, answered the way we would answer them on a call.

Postgres for complex queries, constraints and JSON. MySQL when it already works and the model is simple — migration needs a reason.

Largely interchangeable for application work. Follow whatever your hosting and team already run.

Replication solves read scaling and is simple. Sharding solves write scaling and is a significant architectural commitment.

Got an idea? Let’s make it real.

Tell us the short version

This could be the first step towards a new and successful collaboration. A one-line idea and a finished spec are both fine — tell us the problem, the deadline you’re working to and what’s in your way.

We reply within one working day.

Prefer another way to talk?

Frequently asked questions

Only with a reason — complex queries, JSON needs or constraint requirements. Migration for its own sake is not worth the risk.

Largely interchangeable for application work. We follow whatever your hosting and team already standardise on.

Usually. Most cases come down to missing indexes, N+1 query patterns or a schema fighting the access pattern.

Only with a specific reason. A working database is not a problem to solve, and the migration risk is real.

Usually. Most cases resolve to indexing, query patterns or a schema fighting how the data is actually read.