Insertion groupée depuis CSV dans PostgreSQL à l'aide de Go sans boucle For
L'insertion d'un grand volume de données à partir d'un fichier CSV dans une base de données PostgreSQL peut prendre beaucoup de temps lors de l'utilisation d'une boucle for. Une approche plus efficace consiste à utiliser la bibliothèque pgx pour effectuer une opération de copie en masse.
Utilisation de pgx pour l'insertion en masse
Pour y parvenir, vous pouvez suivre ces étapes :
Exemple de code
Le code Go suivant montre comment insérer en masse des données à partir de un fichier CSV dans une base de données PostgreSQL à l'aide de 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>
En utilisant cette approche, vous pouvez efficacement insérer en masse des données à partir de gros fichiers CSV sans la surcharge d'une boucle for. Cette méthode est particulièrement utile pour gérer de grands ensembles de données et garantir des performances de chargement de données plus rapides.
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!