Rumah >pembangunan bahagian belakang >Golang >Bagaimana untuk Mengumpulkan Penyata SQL dengan Cekap Menggunakan pangkalan data/Pakej sql Go?

Bagaimana untuk Mengumpulkan Penyata SQL dengan Cekap Menggunakan pangkalan data/Pakej sql Go?

DDD
DDDasal
2024-12-26 13:31:10950semak imbas

How to Batch SQL Statements Efficiently Using Go's database/sql Package?

Mengumpulkan Penyata SQL dengan pangkalan data Go/Pakej sql

Dalam Java, melaksanakan berbilang pernyataan SQL dalam satu kelompok boleh dicapai melalui kaedah PreparedStatement dan executeBatch(). Tetapi bagaimana kita boleh mencapai perkara yang sama menggunakan pangkalan data/pakej sql Go?

Pakej pangkalan data/sql menyediakan fungsi Exec yang boleh melaksanakan pernyataan SQL. Walau bagaimanapun, ia hanya memerlukan satu set hujah. Untuk menyusun berbilang pernyataan, kita boleh menggunakan fungsi variadic dan membina satu pernyataan SQL yang merangkumi semua pernyataan individu untuk dilaksanakan.

Berikut ialah contoh:

func bulkInsert(unsavedRows []*ExampleRowStruct) error {
    var (
        valueStrings []string
        valueArgs    []interface{}
    )

    for _, post := range unsavedRows {
        valueStrings = append(valueStrings, "(?, ?, ?)")
        valueArgs = append(valueArgs, post.Column1)
        valueArgs = append(valueArgs, post.Column2)
        valueArgs = append(valueArgs, post.Column3)
    }

    stmt := fmt.Sprintf(
        "INSERT INTO my_sample_table (column1, column2, column3) VALUES %s",
        strings.Join(valueStrings, ","),
    )

    _, err := db.Exec(stmt, valueArgs...)
    return err
}

Kod ini membina pernyataan SQL tunggal yang memasukkan semua baris ke dalam pangkalan data. Dengan menghantar hujah pernyataan individu (nilai) sebagai parameter variadic, kita boleh melaksanakan berbilang kenyataan dalam satu rangkaian pergi balik. Ujian telah menunjukkan bahawa pendekatan ini boleh menjadi jauh lebih pantas daripada menggunakan kaedah Mula, Sediakan dan Komit untuk menggabungkan pernyataan SQL.

Atas ialah kandungan terperinci Bagaimana untuk Mengumpulkan Penyata SQL dengan Cekap Menggunakan pangkalan data/Pakej sql Go?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

Kenyataan:
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn