PostgreSQL & MySQL tuning · zero-downtime migrations · Nashville, TN

Bigger servers don’t fix slow queries. Tuning does.

Fig. 1 — the bench, 9:40 p.m. A guitar headstock with gold tuning pegs beside a laptop showing a database query plan, lit by a single brass lamp on a walnut workbench

A440Hz

A = 440 Hz is the note every guitar on Lower Broadway is checked against before the first set. Your database has a pitch too — usually its p95. We listen to slow PostgreSQL and MySQL the way a repairman listens for a buzzing fret, rewrite the queries and indexes causing it, and plan your move to a managed cloud database with the lights left on.

Fixed-scope engagements from $3,850 · invoiced, never metered

01 / Our approachRead aloud at every kickoff

Listen first. Index second.

A missing index has a sound. It’s the replica fan spinning up at 2:14 a.m., the latency graph turning the colour of a bruise, a checkout button that hangs just long enough for someone to close the tab. We find that sound first — then we change the one thing making it, and nothing else.

— The house rule, chalked above the bench at 140 Cedarcrest Dr
02 / Questions, in the order the work happensSix answers

Before the first downbeat

The questions every CTO asks on the first call, answered in the sequence the engagement actually runs. If yours isn’t here, ask it out loud — the bench line is (917) 414-1843.

Printed query plans pinned to a navy board, one line highlighted in gold, with a tuning fork resting below
Ask us yours
  1. 01 — Access

    Do you need the keys to production?

    No. We ask for a read-only role on a replica — pg_read_all_stats on Postgres, PROCESS plus SELECT on performance_schema for MySQL. Nothing we run during the audit can write a row. Changes happen only after you’ve read and signed the change list.

  2. 02 — Homework

    What should we send before the call?

    Whatever is already humming in your logs: the top statements from pg_stat_statements or the MySQL slow log, EXPLAIN (ANALYZE, BUFFERS) output for the three queries your team groans about, a schema-only dump, and your current instance size. Five small files.

  3. 03 — Timing

    How long until we hear something?

    Ten business days for The Tuning. You get a written report ranking every finding by how loud it is — time saved per hour of real traffic — with the exact SQL for each fix, then a forty-minute walkthrough with your engineers.

  4. 04 — Scope

    What if you find more than the scope covers?

    We write it down, price it as its own line, and you decide. The fixed fee stays fixed; it never quietly swells between the kickoff and the invoice.

  5. 05 — Migration

    Can you really move us without downtime?

    We plan around logical replication — native publications on Postgres, binlog replication on MySQL — and rehearse the cutover twice on a clone before production hears a thing. The switch itself is a connection-string flip in a window you choose, with a rollback that has actually been run.

  6. 06 — Fit

    Is this right for a team of six?

    It’s cut for exactly that: SaaS teams with no full-time DBA, whose database grew faster than anyone’s attention to it. Already have a DBA? We’re glad to be the second pair of ears in the room.

03 / The bench menuEvery price fixed before kickoff

Fixed scopes, priced before we touch a byte

Four engagements, each with a start, an end and a single invoice. Pick the one that matches the noise you’re hearing — or call and describe it, and we’ll point.

Where most teams start Performance audit

The Tuning

$3,850 fixed · 10 business days

We read your pg_stat_statements like sheet music, find the queries playing flat, and hand back a ranked report — index changes, query rewrites, autovacuum and buffer settings — each with the SQL ready to paste.

  • Read-only replica access, nothing more
  • Before-and-after EXPLAIN plans for every finding
  • Copy-ready migration files for each index
  • A 40-minute walkthrough with your engineers
Book The Tuning
Fig. 2 — sketched before it’s typed Hands sketching an index tree diagram in pencil on cream paper beside a printed slow-query log circled in gold ink
Query & index rewrite

The Rewrite

$8,700 fixed · 3 weeks

We make the fixes ourselves: the twelve worst queries rewritten, indexes added with CREATE INDEX CONCURRENTLY or dropped, ORM call sites untangled — each change proven with timed plans on a production-sized clone.

Start The Rewrite
Zero-downtime migration

The Move

From $14,600 4–6 weeks

A migration plan to RDS, Aurora, Cloud SQL or Azure Database — replication topology, cutover runbook, two full rehearsals, and a rollback that’s been run, not imagined.

Plan The Move
Quarterly check-up

Second Listen

$1,275 per quarter · after any engagement

We re-run the audit queries against your baseline and flag anything that has started to hum again, before it reaches the pager.

Add Second Listen
Send these ahead of the first call

The listening kit

  1. Top 25 statements by total_exec_time from pg_stat_statements — or the MySQL slow log with long_query_time = 1
  2. EXPLAIN (ANALYZE, BUFFERS) for the three queries your team sighs at in stand-up
  3. A schema-only dump: pg_dump --schema-only or mysqldump --no-data
  4. Your provider, instance class and storage type, plus a screenshot of last week’s CPU graph
Engines on the bench

What we tune

  • PostgreSQL 12–17
  • MySQL 5.7 & 8.0
  • Amazon RDS
  • Aurora
  • Cloud SQL
  • Azure Database
  • Neon
04 / Why a small houseNashville, TN

Small shop, long memory

A walnut workbench against a navy wall at blue hour, lit by a brass lamp, with query sketches, index cards and a guitar in soft focus
About the name

Named for a repair bench

Thackeray & Sons takes its name from a family habit: nobody turns a peg until they’ve heard the buzz. We kept the habit and swapped the instrument. Your slow log gets read by the same hands that write the final migration file.

Read the longer story
  • i.

    Every index carries its reason

    Each index we ship gets a COMMENT ON naming the query it serves — so in eighteen months nobody drops it during a cleanup and wakes the pager.

  • ii.

    Read-only until you sign

    The audit never writes. Fixes go into a change list you read line by line before a single statement runs against your data.

  • iii.

    Rollback before rollout

    No migration step leaves the bench without its reverse written beside it and tested on a clone the same afternoon.

  • iv.

    Invoiced, not subscribed

    One fixed fee per engagement, net-15, by ACH, check or card. No seats, no dashboard you didn’t ask for, no monthly meter ticking.

05 / The first engagementThe Tuning

Ten days to a quieter database

The fee

$3,850, fixed

Invoiced net-15 after the report lands in your inbox — not a day before. ACH, check, Visa, Mastercard or Amex.

Ten business days, from read-only credentials to a ranked, written report you can hand straight to your team.

The start

One unhurried call

Bring the query your team groans about. We’ll open its plan with you live and tell you, honestly, whether an audit is worth it.

06 / The workshopWhiteboard sessions by appointment

Find the bench in 37212

We’re based in Nashville, TN, in a front-room workshop on Cedarcrest Drive — radiator ticking through the winter, cicadas through the screen door in August. The tuning itself happens over a read-only connection; coffee, whiteboards and migration rehearsals happen here, by appointment.

Plot the route to Cedarcrest
A navy front door with brass hardware on a brick bungalow porch in warm evening light
140Cedarcrest Dr — front-room workshop
37212Nashville, TN
8–6Monday through Thursday
1PMFriday — pens down
07 / Ready when your graphs areReplies within one working day

Send us the query that hums

The offer, once more

The Tuning — a fixed-fee audit of your PostgreSQL or MySQL database: $3,850, ten business days, read-only access, and a ranked report your team can act on Monday morning.

Paste the query, describe the noise, or just tell us what the dashboard looked like last Tuesday at peak. We’ll write back with a time for a listening call.

Or reach the bench directly (917) 414-1843 info@thackeraysons.com Mon–Thu 8am–6pm · Fri to 1pm