나는 열이 user_id, email, default 인 테이블을 가지고있다. 전자 메일이 사용자 기본 전자 메일인지 여부에 따라 기본값은 'Y'또는 'N'을 저장합니다. 각 사용자는 기본 전자 메일을 하나만 가질 수 있습니다.두 개의 쿼리가 더 효율적입니까?
사용자가 테이블에서 업데이트 또는 삽입을 수행 할 때 내 SP에서 사용자가 isDefault를 'Y'로 전달했는지 확인합니다. 그렇다면 기본 'N'을 만들기 위해 해당 사용자의 모든 항목을 업데이트해야합니다. 내 질문은 : 어디에서 기본의
update table
set default = 'N'
where user_id = 'abc'
and default = 'Y'
(오버 헤드 : 더 잠금 문제 (두 개 이상의 스레드가 특정 사용자 테이블에서 데이터를 요청하지 않습니다) 이상 많은 시간이 소요되는 다음의 쿼리 사이에 하나가없는 고려 = 'Y'확인) 쿼리의 속도 SEV에 따라 모든 사용자에 대한 레코드)
쿼리의 속도가 가장 중요한 요소는 아닙니다. 불필요한 업데이트로 인해 더 큰 잠금이 발생한다는 사실과 업데이트가 실제로 변경되지 않은 경우에도 업데이트가 필요하다는 사실을 고려해야합니다. 값을 사용하여 테이블에 정의 된 UPDATE 트리거를 시작하십시오. –