PostgreSQL의 효율적인 대량 행 업데이트
단일 쿼리에서 여러 행을 대량 업데이트하는 것은 데이터베이스 성능을 향상시키는 데 사용되는 일반적인 최적화입니다. PostgreSQL은 이 프로세스를 용이하게 하는 강력한 메커니즘을 제공합니다.
파생 테이블 접근 방식
PostgreSQL에서 대량 업데이트를 위한 효과적인 접근 방식 중 하나는 파생 테이블을 활용하는 것입니다. 이 접근 방식에는 원하는 업데이트가 포함된 임시 테이블을 생성한 다음 이를 사용하여 대상 테이블을 수정하는 작업이 포함됩니다.
UPDATE t SET column_a = v.column_a, column_b = v.column_b FROM (VALUES (1, 'FINISH', 1234), (2, 'UNFINISH', 3124) ) v(id, column_a, column_b) WHERE v.id = t.id;
이 쿼리는 특정 행 업데이트가 포함된 파생 테이블 v를 생성합니다. 그런 다음 UPDATE 문은 이 테이블을 사용하여 t 테이블을 수정합니다. WHERE 절은 업데이트가 올바른 행에만 적용되도록 보장합니다.
Go 언어 예
Go에서 이 쿼리를 실행하려면 다음 코드 조각을 사용할 수 있습니다. :
import ( "context" "database/sql" "fmt" ) func main() { db, err := sql.Open("postgres", "host=localhost user=postgres password=password dbname=postgres sslmode=disable") if err != nil { panic(err) } ctx := context.Background() query := ` UPDATE t SET column_a = v.column_a, column_b = v.column_b FROM (VALUES (1, 'FINISH', 1234), (2, 'UNFINISH', 3124) ) v(id, column_a, column_b) WHERE v.id = t.id; ` _, err = db.ExecContext(ctx, query) if err != nil { panic(err) } fmt.Println("Rows updated successfully.") }
파생 테이블의 이점 접근 방식
위 내용은 파생 테이블을 사용하여 PostgreSQL에서 대량 행 업데이트를 효율적으로 수행하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!