Local-first · MySQL 8+ & MongoDB 5+

Find the queries that are quietly killing your database

Query Vitals connects to your database, watches the queries running against it, and turns engine-native execution plans into a plain diagnosis — missing indexes, full scans, and N+1 workload patterns — each scored 0–100 with a copy-ready fix.

Free & open source (MIT) · No account · No cloud · Your data never leaves your machine
Query Vitals dashboard: metric cards for total, indexed, non-indexed and slow queries, a query-volume-and-latency chart, and a ranked table of the slowest queries with performance scores.
What it does

From vague slowness to a precise fix

Slow queries hide behind high CPU, long page loads, and "it just feels slower today." Query Vitals replaces guesswork with engine-native telemetry and a normalized diagnosis.

📡

Continuous monitoring

Observes live query activity through each engine's own telemetry — performance_schema for MySQL, the profiler for MongoDB — with a real-time monitoring table.

🧭

Normalized execution plans

Runs each query through the engine's native EXPLAIN / explain() tooling and renders the plan tree, rows examined vs. returned, and the index used.

💯

A single 0–100 score

One shared performance score across both engines, so a slow MongoDB lookup and a MySQL full scan speak the same language and rank side by side.

💡

Copy-ready index fixes

Rule-based recommendations for missing, composite, compound, redundant, and unused indexes — with estimated impact and dismissal, ready to paste.

🔁

N+1 & workload patterns

Deterministic detection of repeated point-lookups that are individually fast but costly in aggregate — "84 similar queries in 2.3s" — scored by cumulative cost.

📊

Dashboard & rankings

Metric cards, slowest / most-executed / full-scan / poor-selectivity rankings, and Recharts time series of latency and volume over your observation window.

A look inside

See it working on a real database

Every screen is built for dense, fast inspection — the same dark, developer-tool feel as the apps you already keep open.

The loop

Observe → analyze → score → suggest

The same four-step pipeline runs continuously for every query, on either engine.

01 / Connect

Add a connection

Point Query Vitals at MySQL 8+ or MongoDB 5+. Capability checks confirm monitoring access; passwords go to your OS keychain.

02 / Observe

Collect queries

A poll loop streams real query activity from engine-native telemetry into a local history, fingerprinting and merging as it goes.

03 / Analyze

Score the plan

Each query's execution plan is normalized and scored 0–100, flagging full scans, poor selectivity, and repeated-lookup bursts.

04 / Fix

Get the change

Receive a copy-ready index or batching suggestion with estimated impact — or a workload insight when the real issue is orchestration.

Privacy

Local-first by design

Your query history, recommendations, and settings stay on your machine. There's nothing to sign up for and no server in the loop — Query Vitals talks only to the database you point it at.

  • No account required. Install and connect — that's it.
  • No cloud service. All analysis runs on your device.
  • Data stays local. History & settings live in local SQLite.
  • Keychain-backed secrets. DB passwords go to the OS keychain, never plaintext.
  • AI stays optional. Future AI features are opt-in and disabled by default.
Built with

A native desktop app, no native build

Electron React TypeScript TailwindCSS Zustand Recharts mysql2 mongodb sql.js · WASM SQLite
Get started

Diagnose your database in minutes

Download the desktop app for your platform, or clone the repo and run it from source. Free, open source, and entirely local.

macOS · Windows · Linux — packaged with auto-update