How to Create Dashboards for Your MySQL Query Data
Dashboards in Indiequery group related queries and visualizations into a single view. Create dashboards to monitor metrics, track KPIs, and share insights with your team. Each dashboard can hold up to 50 queries with their charts and tables, all refreshable with one click.
Create Your First Dashboard
Navigate to your project and click Create Dashboard. Give it a descriptive name like "User Metrics", "Sales Overview", or "Weekly KPIs".
Dashboards belong to projects, which are tied to database connections. All queries on a dashboard must come from the same database connection. This keeps your data organized by database.
Add Queries to a Dashboard
You can only add saved queries to dashboards. If you haven't saved your query yet, run it first and click Save Query to give it a name.
To add a query:
- Open a saved query
- Click Add to Dashboard
- Select which dashboard to add it to
- The query's visualization appears on the dashboard
You can add the same query to multiple dashboards if you need the same metrics in different places.
Organize Dashboard Layout
Click Edit Dashboard to rearrange your visualizations:
- Drag and drop queries to reorder them
- Remove queries by clicking the X icon
- Refresh all queries with one click instead of updating individually
The order you set determines how visualizations display on the dashboard. Put your most important metrics at the top.
Dashboard Limits
Each dashboard supports up to 50 queries. If you need more, create additional dashboards to split your metrics logically (like "User Metrics" and "Revenue Metrics").
Queries on a dashboard must belong to the same project and database connection. You can't mix queries from different databases on one dashboard.
Refresh Dashboard Data
Click Refresh All to re-run every query on the dashboard and update all visualizations. This is faster than opening each query individually.
Each query runs with the latest data from your database, so you always see current metrics.
Common Dashboard Examples
User Analytics Dashboard:
-- Active users today
SELECT COUNT(DISTINCT user_id) as active_users
FROM user_sessions
WHERE DATE(created_at) = CURDATE();
-- Signups this week
SELECT DATE(created_at) as date, COUNT(*) as signups
FROM users
WHERE created_at > DATE_SUB(NOW(), INTERVAL 7 DAY)
GROUP BY date
ORDER BY date;
-- Top user locations
SELECT country, COUNT(*) as users
FROM users
GROUP BY country
ORDER BY users DESC
LIMIT 10;
Sales Dashboard:
-- Revenue by month
SELECT
DATE_FORMAT(created_at, '%Y-%m-01') as month,
SUM(amount) as revenue
FROM orders
GROUP BY month
ORDER BY month;
-- Top products
SELECT
product_name,
SUM(quantity) as units_sold,
SUM(quantity * price) as revenue
FROM order_items
GROUP BY product_name
ORDER BY revenue DESC
LIMIT 10;
-- Average order value
SELECT AVG(amount) as avg_order_value
FROM orders
WHERE created_at > DATE_SUB(NOW(), INTERVAL 30 DAY);
Customer Health Dashboard:
-- Churn rate
SELECT
DATE_FORMAT(canceled_at, '%Y-%m-01') as month,
COUNT(*) as churned_customers
FROM subscriptions
WHERE canceled_at IS NOT NULL
GROUP BY month
ORDER BY month;
-- Active subscriptions by tier
SELECT subscription_tier, COUNT(*) as active
FROM subscriptions
WHERE status = 'active'
GROUP BY subscription_tier;
-- Customer lifetime value
SELECT
AVG(total_spent) as avg_ltv
FROM (
SELECT customer_id, SUM(amount) as total_spent
FROM orders
GROUP BY customer_id
) customer_totals;
Share Dashboards with Your Team
Dashboards show all visualizations in one place, making them perfect for team updates or client reports. Anyone with access to your Indiequery account can view dashboards in your project.
For external sharing, use the public sharing feature on individual visualizations. Each visualization can have its own public link that updates automatically when you refresh the query.
View Dashboards on Mobile
Dashboards work on mobile devices. The layout adapts to smaller screens, stacking visualizations vertically so you can scroll through all your metrics.
Check your KPIs from anywhere - useful for monitoring during off-hours or while traveling.
Edit Dashboard Settings
Click Dashboard Settings to:
- Rename the dashboard - Update the name as your needs change
- Change the project - Move the dashboard to a different project (only works if all queries match the new project's connection)
- Delete the dashboard - Remove the dashboard (saved queries remain intact)
Deleting a dashboard only removes the grouping. Your saved queries and their visualizations stay in your account.
Best Practices for Dashboards
Keep dashboards focused: Create separate dashboards for different purposes rather than one giant dashboard. "User Metrics" and "Revenue Metrics" work better than "All Metrics".
Limit queries per dashboard: While you can add 50 queries, 5-10 visualizations per dashboard loads faster and is easier to scan.
Name queries clearly: When you have multiple queries on a dashboard, descriptive names like "Daily Active Users" work better than "Query 1".
Use visualizations: Charts and formatted tables make dashboards more useful than raw query results. Add visualizations to queries before adding them to dashboards.
Refresh regularly: Set a cadence for refreshing dashboard data (daily, weekly, etc.) so metrics stay current.
Combine Multiple Chart Types
Since each query on a dashboard can have its own visualization type, you can mix bar charts, line charts, area charts, and tables on one dashboard.
Example dashboard layout:
- Line chart: Daily signups trend
- Bar chart: Revenue by product category
- Table: Top 10 customers by spend
- Area chart: Active users over time
This variety helps communicate different types of data more effectively than using the same chart type for everything.
Auto-Update with Query Changes
When you edit a query's SQL or visualization settings, those changes apply everywhere the query appears - including all dashboards.
Edit once, update everywhere. This saves time when you need to adjust metrics across multiple dashboards.