>백엔드 개발 >Golang >Go에서 여러 데이터 행을 효율적으로 삽입하려면 어떻게 해야 합니까?

Go에서 여러 데이터 행을 효율적으로 삽입하려면 어떻게 해야 합니까?

Mary-Kate Olsen
Mary-Kate Olsen원래의
2024-12-22 07:36:10275검색

How Can I Efficiently Insert Multiple Data Rows in Go?

Go에서 효율적인 다중 데이터 삽입

데이터베이스 작업에서는 효율성을 위해 여러 데이터 행을 동시에 삽입하는 것이 종종 유리한 경우가 있습니다. Go는 이를 달성하기 위한 여러 가지 방법을 제공합니다.

한 가지 접근 방식은 db.Prepare 함수를 사용하여 준비된 명령문을 생성하는 것입니다. 준비된 문을 사용하면 SQL 삽입을 방지하고 성능을 향상시킬 수 있습니다. 준비된 문을 사용하여 단일 실행에 여러 행을 삽입하려면 다음 단계를 따르세요.

  1. INSERT INTO 문과 값에 대한 자리 표시자를 사용하여 SQL 문자열을 만듭니다. 예:
sqlStr := "INSERT INTO test(n1, n2, n3) VALUES (?, ?, ?)"
  1. 삽입할 데이터를 보관할 맵 조각을 만듭니다.
data := []map[string]string{
   {"v1":"1", "v2":"1", "v3":"1"},
   {"v1":"2", "v2":"2", "v3":"2"},
   {"v1":"3", "v2":"3", "v3":"3"},
}
  1. 조각을 반복합니다. 준비된 명령문에 값을 추가합니다. 자리 표시자.
vals := []interface{}{}

for _, row := range data {
    vals = append(vals, row["v1"], row["v2"], row["v3"])
}
  1. 문을 올바르게 준비하려면 sqlStr에서 마지막 쉼표를 잘라내는 것이 필요합니다.
//trim the last ,
sqlStr = sqlStr[0:len(sqlStr)-1]
  1. 업데이트된 성명서 sqlStr.
stmt, _ := db.Prepare(sqlStr)
  1. 수집된 값으로 문을 실행합니다.
res, _ := stmt.Exec(vals...)

이 접근 방식을 사용하면 여러 데이터 행을 안전성을 보장하고 데이터베이스 실행 횟수를 줄이면서 데이터베이스를 구축하세요.

위 내용은 Go에서 여러 데이터 행을 효율적으로 삽입하려면 어떻게 해야 합니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.