/01
Query plans you can read
EXPLAIN on the paths staff leave open — which index was used, and in which order the tables join.
Database
We optimize the store you already run — MySQL or Postgres: slow queries, missing indexes, and reports that should not freeze checkout.
How we do this work
This is database work, not a MySQL product. We look at the live store the product already uses — the list that takes three seconds, the month-end export, the checkout that waits on a scan. MySQL and Postgres are both normal. The first fix is usually a better index: a small set that many screens share, not one index on every column.
We start read-only. EXPLAIN shows how the server plans to join and which index it picked. ANALYZE (or ANALYZE TABLE) refreshes the stats the planner uses. Then we change one thing at a time so a report does not lock the storefront. Redis stays in the mix when speed needs a cache, not a second set of books.
What we ship
/01
EXPLAIN on the paths staff leave open — which index was used, and in which order the tables join.
/02
A short composite when one column is not enough. A covering index when the list can stay in the index and skip the table row.
/03
Large order and stock tables should not be read end to end on every click.
/04
A short primary key on InnoDB. On Postgres, indexes that match the filters you actually run — not a key for every column.
/05
ANALYZE so a plan is not built from last year’s numbers.
/06
Heavy reports moved off the live path. Memory sized to the working set you actually touch.
/07
An index or a query rewrite, with a way back, so Friday night is not the first test.
/08
When the lists grow, we come back to the same queries. Same team, same notes.
After it ships
01
A report should not lock the sale.
02
Extra keys slow inserts. We add the few that many lists share.
03
MySQL or Postgres on the invoice. Redis if the next step is a cache, not a new database.
Delivery
01
A quiet look at slow queries, locks, and the pages staff leave open.
02
EXPLAIN before we touch an index. What the planner thinks it will do.
03
An index, a query rewrite, or a report that no longer runs on the live desk.
04
Inserts and checkout after the change — not only the SELECT that got faster.
05
The same lists, with real traffic. Then the next slow one.
Typical use
Related services
Questions
Ready when you are
PHP, Node.js, React, or a mix. You get a tracking ID and a reply from the same people who will build it.