Sisipan Pukal daripada CSV ke dalam PostgreSQL menggunakan Go without For Loop
Memasukkan volum besar data daripada fail CSV ke dalam pangkalan data PostgreSQL boleh memakan masa apabila menggunakan gelung for. Pendekatan yang lebih cekap ialah menggunakan perpustakaan pgx untuk melaksanakan operasi salinan pukal.
Menggunakan pgx untuk Sisipan Pukal
Untuk mencapainya, anda boleh mengikuti langkah berikut:
Contoh Kod
Kod Go berikut menunjukkan cara memasukkan data secara pukal daripada fail CSV ke dalam pangkalan data PostgreSQL menggunakan pgx:
<code class="go">import ( "context" "fmt" "os" "github.com/jackc/pgx/v5" ) func main() { filename := "foo.csv" dbconn, err := pgx.Connect(context.Background(), os.Getenv("DATABASE_URL")) if err != nil { panic(err) } defer dbconn.Release() f, err := os.Open(filename) if err != nil { panic(err) } defer func() { _ = f.Close() }() res, err := dbconn.Conn().PgConn().CopyFrom(context.Background(), f, "COPY csv_test FROM STDIN (FORMAT csv)") if err != nil { panic(err) } fmt.Print(res.RowsAffected()) }</code>
Dengan menggunakan pendekatan ini, anda boleh memasukkan data secara pukal secara pukal daripada fail CSV yang besar tanpa overhed gelung for. Kaedah ini amat berguna untuk mengendalikan set data yang besar dan memastikan prestasi pemuatan data yang lebih pantas.
Atas ialah kandungan terperinci Bagaimanakah saya boleh memasukkan data secara pukal daripada fail CSV ke dalam PostgreSQL dengan cekap menggunakan Go tanpa gelung for?. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!