programing

쿼리에서 트랜잭션을 언제 사용해야 합니까?

cafebook 2023. 7. 27. 22:16
반응형

쿼리에서 트랜잭션을 언제 사용해야 합니까?

데이터베이스 유형 및 데이터베이스 엔진을 사용한 트랜잭션을 사용하는 방법에 대한 매우 자세한 튜토리얼을 읽고 있지만, 트랜잭션을 사용해야 하는 시기와 이유를 알려주는 가이드를 찾지 못했습니다.

저는 거래가 보통 은행 업무에 사용된다는 것을 알고 있습니다. 그래서 우리가 돈 데이터를 다룰 때, 저는 그것들이 다른 많은 방법으로 사용된다는 것을 상상할 수 있습니다.

오늘 저는 다양한 페이지에서 작업하고 있습니다.INSERT관계형 데이터베이스에 대한 진술, 그리고 저는 이것이 제가 그것들을 사용해야 하는 경우 중 하나인지 알고 싶었습니다.

(코더 오류를 제외하고) 데이터가 부분적으로 손실될 수 있는 경우를 모른다는 인상을 받기 때문에 언제 사용해야 할지 항상 고민하고 있습니다.

누가 이 기본적인 규칙들을 설명하거나 연관성을 줄 수 있습니까?

사용 중MySQL 5.0.8사용할까요?InnoDB거래가 필요한 모든 테이블에 대해?만약 그렇다면,InnoDB보통 때보다 느린MyISAM그런 걱정은 안 해도 되나요?

감사해요.

기본적으로 외부 변경사항에 민감하거나 오류가 발생하거나 다른 이유로 인해 모든 변경사항을 롤백할 수 있는 기능이 필요한 작업 단위가 있으면 언제든지 사용할 수 있습니다.

여기에서 몇 가지 우수한 답변과 이를 사용하는 이유를 참조하십시오.

Nick Craver가 작성한 내용 외에도, 원자적으로 수행해야 하는 일련의 쓰기가 있을 때 트랜잭션을 사용할 수 있습니다. 즉, 모두 성공해야 하거나 성공하지 않아야 합니다.

작업을 완료하지 못하거나 작업 도중에 읽거나 쓰는 다른 사람이 데이터를 손상시킬 가능성이 있을 때 트랜잭션을 사용해야 합니다.여기에는 다음이 포함되지만 이에 국한되지 않습니다.

  • 후속 삭제를 위해 테이블에서 읽는 중
  • 관련 데이터를 여러 테이블에 쓰는 중

트랜잭션은 원자적이어야 하는 작업 그룹이 있을 때 사용합니다(모두 성공하거나 성공하지 않음). 이러한 작업을 트랜잭션으로 래핑하면 오류가 발생할 때 이미 성공한 작업을 롤백할 수 있습니다.또한 트랜잭션이 완료될 때까지 잠금이 유지되므로 작업 중인 데이터가 일관되게 유지됩니다.

일부 프레임워크(예: Spring)에서는 자동 트랜잭션을 통해 트랜잭션이 실패한 경우 트랜잭션을 다시 실행할 수 있습니다.

대부분 유효한 항목에 대한 변경사항을 저장하고, 해당 양식의 각 단계에 대한 여러 입력이 있는 다중 단계 양식의 경우 케이스를 제출하고, 외부 API 피드백을 받은 후 양식을 제출하는 데 사용됩니다.주로 일부 반환 값에 대한 쿼리를 롤백하려는 경우.

중요한 데이터베이스를 수동으로 처리할 때 테이블에 대한 변경 내용이 올바른 것인지 확인하기 위한 안전/검증 단계로 트랜잭션을 사용하는 것도 좋습니다.이렇게 하면 실수로 잘못된 데이터를 저장하는 수고를 덜 수 있습니다.

:

테이블 I 데이테이A 필드 및 필 드 트x잘못된 값으로 변환합니다. 의도치 않게 이전의 올바른 값을 덮어씁니다.

만약 내가 거래 안에 있다면, 나는 할 수 있을 것입니다.select의 거스름돈을 하고, 하고, 내행거돈확고인하을고발를, 하견오류름스과,▁my,rollback만약 내 행이 정확해 보인다면, 나는 그럴 것입니다.commit

만약 내가 거래 안에 없었다면, 나는 정확한 가치를 잃었을 것입니다.

언급URL : https://stackoverflow.com/questions/2159045/when-should-i-use-transactions-in-my-queries

반응형