私の User モデルには、次のメソッドがあります。
def confirmation_token
self.confirmation = loop do
random_token = SecureRandom.urlsafe_base64(16, false)
break random_token unless User.exists?(confirmation: random_token)
end
end
このメソッドは、ユーザーの電子メールを確認するためのランダムなトークンを作成するだけです...
ご覧のとおり、User.exists?(confirmation: random_token) の間ループします。これは、ユーザー テーブルに類似のトークンが既に存在しないかどうかを検証することを意味します。
私の質問は次のとおりです。たとえば、「ユーザーテーブル」に多くの行がある場合、パフォーマンスを向上させるために、この(確認)列にインデックスを追加する必要がありますか?
注 (このメソッドは、ユーザーごとに 1 回だけ実行されます ... ユーザーが初めてサインアップしたときに実行されます)