Operation 79394

SELECT users.*, posts.*, comments.*, COUNT(DISTINCT posts.id) as post_count, COUNT(DISTINCT comments.id) as comment_count, AVG(posts.view_count) as avg_views, MAX(comments.created_at) as latest_comment FROM users LEFT JOIN posts ON users.id = posts.user_id LEFT JOIN comments ON users.id = comments.user_id LEFT JOIN user_preferences ON users.id = user_preferences.user_id LEFT JOIN subscriptions ON users.id = subscriptions.user_id WHERE (users.active = ? OR users.premium = ?) AND (posts.published = ? OR posts.featured = ?) AND (comments.approved = ? OR comments.flagged = ?) AND users.created_at BETWEEN ? AND ? GROUP BY users.id HAVING COUNT(posts.id) > ? AND AVG(posts.view_count) > ?
Operation Type
sql
Duration
8.0 ms
Request Impact
9.5% of total request time
Occurred At
Sep 15, 2026 4:16 PM
SQL Analysis
Normal query (<100 ms)
Performance Comparison
Average: 18.0ms
95th Percentile: 34.0ms
Based on 1000 recent operations
Related Operations
5 similar operations in this request
Potential N+1 query pattern detected
Optimization Tips
Use includes() or preload() to load associated records - Eliminate N+1 queries and reduce database load
Use includes() to eager load associations - Eliminate N+1 queries and reduce database load
Use joins() when you only need to filter, not access associated data - Eliminate N+1 queries and reduce database load
Use preload() when you don't need to query on associations - Eliminate N+1 queries and reduce database load
Add composite index: add_index :users, ["active", "premium", "published", "featured", "approved", "flagged", "created_at"] - Efficient multi-column filtering
Add single_column index: add_index :comments, :user_id - Fast JOIN execution
Add single_column index: add_index :posts, :user_id - Fast JOIN execution
Add single_column index: add_index :subscriptions, :user_id - Fast JOIN execution
Add single_column index: add_index :user_preferences, :user_id - Fast JOIN execution
Add single_column index: add_index :users, :active - Fast lookups for active = value queries
Add single_column index: add_index :users, :approved - Fast lookups for approved = value queries
Add single_column index: add_index :users, :featured - Fast lookups for featured = value queries
Add single_column index: add_index :users, :flagged - Fast lookups for flagged = value queries
Add single_column index: add_index :users, :premium - Fast lookups for premium = value queries
Add single_column index: add_index :users, :published - Fast lookups for published = value queries
Add single_column index: add_index :users, :created_at - Efficient range scans for created_at
Review if all 4 JOINs are necessary - Simplified query execution and better performance
Consider breaking complex query (complexity: 34) into smaller parts - Easier maintenance and potentially better performance
Simplify WHERE clause by breaking into multiple queries or using views - Easier maintenance and potentially better performance
Index Optimization - Review indexes on the 'users' table. Consider composite indexes for WHERE clauses.