Instalar com Codex ou Claude Copie este prompt, cole no Codex, Claude ou outro assistente e deixe que ele revise a página da skill e instale para você.
Um comando direto ignora o prompt de revisão. Verifique a origem antes de executá-lo.
Database design, optimization, and caching strategies for SQL, NoSQL, and Redis
sasmp_version
1.3.0
bonded_agent
03-database-performance
bond_type
PRIMARY_BOND
atomic_design
{"single_responsibility":"Database optimization and caching patterns","boundaries":{"includes":["sql_optimization","nosql_patterns","redis_caching","connection_pooling","indexing"],"excludes":["api_design","business_logic","infrastructure"]}}
Optimize database operations with proven patterns for SQL, NoSQL, and caching.
SQL Optimization
Indexing Strategy
-- B-tree index (default, equality + range)CREATE INDEX idx_users_email ON users(email);
-- Composite index (order matters!)CREATE INDEX idx_orders_user_date ON orders(user_id, created_at DESC);
-- Partial index (filter common queries)CREATE INDEX idx_active_users ON users(email) WHERE status ='active';
-- Covering index (avoid table lookup)CREATE INDEX idx_orders_covering ON orders(user_id) INCLUDE (total, status);
N+1 Query Prevention
// BAD: N+1 queriesconst users = await db.query('SELECT * FROM users');
for (const user of users) {
user.orders = await db.query(
'SELECT * FROM orders WHERE user_id = ?',
[user.id]
);
}
// GOOD: Single query with JOINconst usersWithOrders = await db.query(`
SELECT u.*, json_agg(o.*) as orders
FROM users u
LEFT JOIN orders o ON u.id = o.user_id
GROUP BY u.id
`);
// GOOD: DataLoader patternconst orderLoader = newDataLoader(async (userIds) => {
orders = db.(
,
[userIds]
);
userIds.( orders.( o. === id));
});
const
await
query
'SELECT * FROM orders WHERE user_id = ANY($1)'
return
map
id =>
filter
o =>
user_id
Connection Pooling
import { Pool } from'pg';
const pool = newPool({
host: process.env.DB_HOST,
database: process.env.DB_NAME,
max: 20, // Max connectionsmin: 5, // Min connectionsidleTimeoutMillis: 30000, // Close idle after 30sconnectionTimeoutMillis: 5000,
acquireTimeoutMillis: 10000,
});
// Monitor pool health
pool.on('error', (err, client) => {
console.error('Unexpected pool error', err);
});
// Query with automatic releaseasyncfunctionquery(sql, params) {
const client = await pool.connect();
try {
returnawait client.query(sql, params);
} finally {
client.release();
}
}