Operation 140075
SELECT * FROM (SELECT users.id, users.name, users.email, COUNT(posts.id) as post_count FROM users LEFT JOIN posts ON users.id = posts.user_id WHERE users.active = ? GROUP BY users.id) as user_posts JOIN (SELECT user_id, COUNT(*) as comment_count FROM comments WHERE approved = ? GROUP BY user_id) as user_comments ON user_posts.id = user_comments.user_id WHERE user_posts.post_count > ? AND user_comments.comment_count > ?
- Operation Type
sql
- Duration
- 21.0 ms
- Request Impact
- 35.1% of total request time
- Occurred At
- Sep 22, 2026 6:28 PM
- SQL Analysis
- Normal query (<100 ms)
- Performance Comparison
-
Average: 18.2ms
95th Percentile: 34.0ms
Based on 1000 recent operations - Related Operations
- 1 similar operation in this request
- Optimization Tips
-
Use includes() or preload() to load associated records - Eliminate N+1 queries and reduce database loadUse includes() to eager load associations - Eliminate N+1 queries and reduce database loadUse joins() when you only need to filter, not access associated data - Eliminate N+1 queries and reduce database loadUse preload() when you don't need to query on associations - Eliminate N+1 queries and reduce database loadAdd single_column index: add_index :posts, :user_id - Fast JOIN executionAdd single_column index: add_index :users, :active - Fast lookups for active = value queriesConsider converting subqueries to JOINs for better performance - More efficient query execution in most databasesSpecify only needed columns instead of SELECT * - Reduced memory usage and faster data transferConsider breaking complex query (complexity: 23) into smaller parts - Easier maintenance and potentially better performanceIndex Optimization - Review indexes on the 'users' table. Consider composite indexes for WHERE clauses.