답변 6개 / 댓글 1개
채택된 답변
+20 포인트
레코드 하나에 필요한( 업데이트할) 컬럼이 다 있다면
당연히 후자가 낫습니다.
배열 크기와 업데이트해야 하는 행 수에 따라 다릅니다.
배열이 상대적으로 작고 업데이트할 행 수도 적은 경우 루프 또는 foreach 문을 사용하여 배열의 각 값에 대해 별도의 업데이트 쿼리를 실행하면 심각한 성능 문제가 발생하지 않습니다.
그러나 배열이 크거나 업데이트할 행 수가 많은 경우 배열의 각 값에 대해 별도의 업데이트 쿼리를 실행하면 많은 수의 데이터베이스 쿼리를 실행해야 하므로 성능 문제가 발생할 수 있습니다. .
이러한 경우 언급한 대로 모든 열과 값을 한 번에 설정하여 단일 쿼리에서 관련 행을 모두 업데이트하는 것이 보다 효율적인 접근 방식입니다. 이렇게 하면 데이터베이스 쿼리 수가 최소화되고 성능이 향상됩니다.
다음은 단일 쿼리에서 여러 행을 업데이트하는 방법의 예입니다.
Copy
UPDATE tablename SET column1 = 'value1', column2 = 'value2', column3 = 'value3' WHERE id IN (1, 2, 3);
서로 다른 변수를 기반으로 여러 행을 업데이트하는 데 유사한 접근 방식을 사용할 수 있습니다.
항상 쿼리 성능을 테스트하고 예상대로 작동하는지 확인하는 것이 좋습니다.
답변을 작성하려면 로그인이 필요합니다.
어쩌다 한번 하는 거라면
크게 신경 안 쓰셔도됩니다.