# Database Optimization Techniques
Database performance is crucial for scalable applications. Here are proven techniques to optimize your database queries and improve overall performance.
## Indexing Strategies
Proper indexing is the foundation of database performance:
```sql
-- Create composite index
CREATE INDEX idx_user_email_status ON users(email, status);
-- Create partial index
CREATE INDEX idx_active_users ON users(created_at) WHERE status = 'active';
```
## Query Optimization
1. **Use EXPLAIN**: Analyze query execution plans
2. **Avoid SELECT ***: Only select needed columns
3. **Use LIMIT**: Paginate large result sets
4. **Optimize WHERE clauses**: Put most selective conditions first
## Connection Pooling
```javascript
const pool = new Pool({
max: 20,
idleTimeoutMillis: 30000,
connectionTimeoutMillis: 2000,
});
```
## Caching Strategies
1. **Query Result Caching**: Cache frequently accessed data
2. **Application-level Caching**: Use Redis or Memcached
3. **Database Query Plans**: Cache execution plans
These techniques can dramatically improve your application's performance and user experience.