나는 아래와 같은 개인 인스턴스 사용자 모델 방법이 안타 -리팩토링 코드는
def generate_authentication_token
loop do
token = Devise.friendly_token
break token unless self.class.unscoped.where(authentication_token: token).first
end
end
우리가 아니, 그 가정하자. 사용자 레코드는 100 조입니다. 위의 스크립트를 실행하고 각 반복에서 생성 된 토큰이 레코드와 일치하면 루프는 100 조 회 반복됩니다. 레코드를 검색하기 위해 DBMS에서도 마찬가지입니다. 반복을 줄이고 db-hits를 줄임으로써 (각 반복마다 일치하는 레코드가 제공됨)이 문제를 신속하게 해결할 수있는 솔루션이 있습니까? 그리고 진지하게, 미안 해요! 질문이 이해가 안되면 알려주세요. 최대한 빨리 삭제하겠습니다. 감사. 해피 코딩.
을 목표로하는 100 조 사용자를 위해 비효율적 인 것인가? – mlovic
예, 색인 생성은 authentication_token 필드에 적용됩니다. – codemilan