I worry about providing guidelines like this. More often than not, this is a good idea, but I don't think it's close to a 90% rule.

For example, if a users table has a subscription_id column, you might need to look up the related subscriptions row (`SELECT * FROM subscriptions WHERE id = ?`), but you might never do the opposite (`SELECT * FROM users WHERE subscription_id = ?`).

Every unused index actually hurts performance and makes explain statements harder to understand.

@mike-burns @croaky thoughts?