Maison >développement back-end >Golang >Comment effectuer des insertions groupées efficaces dans PostgreSQL avec pgx et Go ?

Comment effectuer des insertions groupées efficaces dans PostgreSQL avec pgx et Go ?

DDD
DDDoriginal
2024-10-31 04:51:02986parcourir

How to Perform Efficient Bulk Inserts in PostgreSQL with pgx and Go?

INSÉRER en masse dans PostgreSQL à l'aide de Go et pgx

Cet extrait de code montre la manière correcte d'effectuer une insertion en masse dans PostgreSQL à l'aide de la bibliothèque pgx dans Go.

Description du problème

Le code d'origine a tenté de construire manuellement une instruction SQL pour une insertion groupée, mais a rencontré une erreur en raison d'un nombre d'arguments incorrect.

Solution avec pgx.CopyFrom

Au lieu de créer manuellement l'instruction SQL, nous exploitons la méthode pgx.Conn.CopyFrom, qui utilise le protocole de copie de PostgreSQL pour une insertion groupée efficace :

<code class="go">rows := [][]interface{}{
    {&quot;abc&quot;, 10},
    {&quot;dns&quot;, 11},
    {&quot;qwe&quot;, 12},
    {&quot;dss&quot;, 13},
    {&quot;xcmk&quot;, 14},
}

copyCount, err := conn.CopyFrom(
    pgx.Identifier{&quot;keys&quot;},
    []string{&quot;keyval&quot;, &quot;lastval&quot;},
    pgx.CopyFromRows(rows),
)
if err != nil {
    fmt.Fprint(os.Stderr, &quot;Error : \n&quot;, err)
}</code>

Ce code insère efficacement les clés de test dans la table des clés dans une seule opération, optimisée pour les performances d'insertion en masse.

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!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn