Operation 232757
SELECT users.* FROM users LEFT JOIN posts ON users.id = posts.user_id LEFT JOIN comments ON posts.id = comments.post_id WHERE users.active = ? AND posts.published = ? AND comments.approved = ? OR users.created_at > ? AND posts.created_at > ? AND comments.created_at > ?
- Operation Type
sql
- Duration
- 28.0 ms
- Request Impact
- 29.8% of total request time
- Occurred At
- Sep 20, 2026 8:28 AM
- SQL Analysis
- Normal query (<100 ms)
- Performance Comparison
-
Average: 17.9ms
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 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 composite index: add_index :users, ["active", "published", "approved", "created_at"] - Efficient multi-column filteringAdd single_column index: add_index :comments, :post_id - Fast JOIN executionAdd single_column index: add_index :posts, :user_id - Fast JOIN executionAdd single_column index: add_index :users, :active - Fast lookups for active = value queriesAdd single_column index: add_index :users, :approved - Fast lookups for approved = value queriesAdd single_column index: add_index :users, :published - Fast lookups for published = value queriesAdd single_column index: add_index :users, :created_at - Efficient range scans for created_atConsider breaking complex query (complexity: 18) into smaller parts - Easier maintenance and potentially better performanceIndex Optimization - Review indexes on the 'users' table. Consider composite indexes for WHERE clauses.