Database Monitoring Console
.env file to connect your live database.
Restarting drops active queries, frees memory, and resets high CPU. Takes ~1-2 mins to complete.
| ID | User | Database / Host | Time (s) | Rows & Quality | State | SQL Query Command | Action |
|---|---|---|---|---|---|---|---|
| Loading queries... | |||||||
| Timestamp (IST) | Query ID | User | Database / Host | Duration (s) | Rows & Quality | State | SQL Query Command | Action |
|---|---|---|---|---|---|---|---|---|
| Select a date and click search to load query logs. | ||||||||
The system evaluates the efficiency of each query based on flags from MySQL's performance telemetry and the ratio of rows scanned to rows sent:
These are MySQL background daemon threads. They are running background operations and do not consume CPU under normal circumstances:
No, the risk is minimal:
information_schema and performance_schema), never modifying database tables.EXPLAIN <query>. MySQL resolves this using the optimizer and never runs the query, avoiding resource locks or re-execution of slow queries.It calculates the ratio as Rows Examined / Rows Sent:
Clicking Explain calls MySQL's internal query optimizer by prepending EXPLAIN to the selected query:
ref, eq_ref, or range (good/indexed). Avoid ALL (full table scan) or index (full index scan).NULL, MySQL is not using any index.Using filesort or Using temporary. These indicate slow, resource-heavy sort/group tasks in temporary storage.Always ensure columns in WHERE, JOIN, ORDER BY, or GROUP BY clauses are indexed.
-- Add index to speed up product lookups
CREATE INDEX idx_products_category ON products(category_id);
When querying multiple fields, create a composite index matching the column order in your WHERE clause (Leftmost Prefix Rule).
-- Ideal for: WHERE status = 'active' AND created_at > NOW()
CREATE INDEX idx_orders_status_date ON orders(status, created_at);
Prefix wildcards (%value) prevent MySQL from using indexes. Use suffix wildcards (value%) instead.
SELECT * FROM users
WHERE email LIKE '%gmail.com';
SELECT * FROM users
WHERE email LIKE 'john.doe%';
Wrapping indexed columns in functions (e.g. DATE(), LOWER()) disables index lookups.
SELECT * FROM sales
WHERE DATE(created_at) = '2026-07-15';
SELECT * FROM sales
WHERE created_at >= '2026-07-15 00:00:00'
AND created_at <= '2026-07-15 23:59:59';
Never fetch more data than needed. Always append a LIMIT clause, especially in analytical or paginated interfaces.
SELECT id, name FROM large_table
ORDER BY id DESC LIMIT 50;
Are you sure you want to perform this action?
| ID | Table | Type | Possible Keys | Key | Rows | Filtered (%) | Extra |
|---|