PHP를 사용하여 프로젝트에서 내 sql 문을 실행하기 위해 beginTransaction()을 사용하여 성공적으로 시도했습니다. 데이터베이스에 항목을 배열해야하며 각 항목은 저장되기 전에 무언가에 대해 유효성을 검사해야합니다. 데이터베이스의 자동 커밋 동작을 해제하는 좋은 방법 중 하나는 중간에 문제가 발생하면 전체 트랜잭션을 롤백 할 수 있다는 것입니다. 내 프로젝트에서 한 항목이 잘못된 경우 전체 배열을 데이터베이스에 기록해서는 안되며이 때문에이 방법을 선택했습니다.롤백으로 성능이 향상됩니까?
이제 성능면에서 더 좋은 방법인지 궁금합니다. 왜냐하면 배열의 마지막 항목이 유효화 되었더라도 이전 실행을 수동으로 commit()해야하기 때문입니다. 커밋이 SQL 실행을 반복합니까?
내가 지금 생각할 수있는 유일한 장점은 모든 항목을 유효하다고 가정하고 각각을 검증하려는 경우 두 개가 아닌 하나의 루프 만 수행하면된다는 것입니다.
SQL은 데이터베이스 제품이 아닙니다. 이것은 많은 RDBMS에서 사용되는 언어 일뿐입니다. ' 어떤 데이터베이스 시스템을 사용하고 있으며 어떤 버전입니까? – Ben
@Ben, postgresql – Michael
약간 OT : 변경 사항의 유효성을 데이터베이스 상태와 변경 자체를 살펴봄으로써 결정할 수 있다면, 비즈니스 논리가 다음과 같이되도록 BEFORE 트리거에 유효성 검사를하는 것이 가장 좋습니다. 사용 된 응용 프로그램 코드의 클라이언트와 상관없이 적용됩니다. – kgrittn