[Rule Title]
[1-2 sentence explanation of the problem and why it matters. Focus on performance impact.]
Incorrect (describe the problem):
-- Comment explaining what makes this slow/problematic
CREATE INDEX users_email_idx ON users(email);
SELECT * FROM users WHERE email = '[email protected]' AND deleted_at IS NULL;
-- This scans deleted records unnecessarilyCorrect (describe the solution):
-- Comment explaining why this is better
CREATE INDEX users_active_email_idx ON users(email) WHERE deleted_at IS NULL;
SELECT * FROM users WHERE email = '[email protected]' AND deleted_at IS NULL;
-- Only indexes active users, 10x smaller index, faster queries[Optional: Additional context, edge cases, or trade-offs]
Reference: Postgres Docs