Maison base de données tutoriel mysql Comment créer un contrôle granulaire de données MySQL hautes performances à l'aide du langage Go

Comment créer un contrôle granulaire de données MySQL hautes performances à l'aide du langage Go

Jun 17, 2023 am 09:16 AM
mysql go语言 高性能

MySQL est un système de gestion de bases de données relationnelles très populaire, et le langage Go est un langage de programmation rapide et efficace qui offre d'excellentes performances dans de nombreux scénarios. Cet article explique comment utiliser le langage Go pour créer un contrôle granulaire des données MySQL hautes performances, fournissant des opérations de lecture et d'écriture de données plus efficaces pour votre site Web ou votre système d'entreprise.

1. Utilisez le langage Go pour vous connecter à MySQL

Tout d'abord, vous devez utiliser le langage Go pour vous connecter à la base de données MySQL. Il existe deux principaux pilotes MySQL disponibles dans le langage Go : Go-MySQL-Driver et MySQL Driver. Dans la plupart des cas, Go-MySQL-Driver est préféré car il offre de meilleures performances et stabilité, tandis que MySQL Driver ne gère pas les caractères Unicode aussi bien que Go-MySQL-Driver. Si nécessaire, vous pouvez installer Go-MySQL-Driver à l'aide de la commande suivante :

go get -u github.com/go-sql-driver/mysql
Copier après la connexion

Ensuite, vous pouvez utiliser le code suivant pour vous connecter à la base de données MySQL :

import (
    "database/sql"
    "fmt"
    _ "github.com/go-sql-driver/mysql"
)

func main() {
    db, err := sql.Open("mysql", "username:password@tcp(127.0.0.1:3306)/dbname")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()
}
Copier après la connexion

Où se trouvent "nom d'utilisateur" et "mot de passe" lorsque vous créez l'utilisateur dans MySQL Choisissez un nom d'utilisateur et un mot de passe, "dbname" est le nom de la base de données à laquelle vous vous connecterez.

2. Utilisez le langage Go pour exécuter la requête MySQL

Après vous être connecté à la base de données, vous pouvez utiliser le langage Go pour exécuter la requête MySQL et obtenir les résultats renvoyés. Voici quelques exemples d'opérations de requête MySQL de base :

  1. Insérer un enregistrement :
func createRecord(db *sql.DB, name string, age int) {
    stmt, err := db.Prepare("INSERT INTO users(name, age) VALUES(?, ?)")
    if err != nil {
        panic(err.Error())
    }
    _, err = stmt.Exec(name, age)
    if err != nil {
        panic(err.Error())
    }
}
Copier après la connexion

Dans cet exemple, nous avons utilisé les fonctions Prepare et Exec pour exécuter la commande d'insertion.

  1. Mettre à jour un enregistrement :
func updateRecord(db *sql.DB, name string, age int, id int64) {
    stmt, err := db.Prepare("UPDATE users SET name=?, age=? WHERE id=?")
    if err != nil {
        panic(err.Error())
    }
    _, err = stmt.Exec(name, age, id)
    if err != nil {
        panic(err.Error())
    }
}
Copier après la connexion

Dans cet exemple, nous utilisons l'instruction UPDATE pour mettre à jour un enregistrement et utilisons les fonctions Prepare et Exec pour exécuter la commande.

  1. Obtenir un seul enregistrement :
func getRecord(db *sql.DB, id int64) (string, int, error) {
    var name string
    var age int
    err := db.QueryRow("SELECT name, age FROM users WHERE id=?", id).Scan(&name, &age)
    if err != nil {
        return "", 0, err
    }
    return name, age, nil
}
Copier après la connexion

Dans cet exemple, nous utilisons les fonctions QueryRow et Scan pour obtenir les données d'un enregistrement.

  1. Obtenir plusieurs enregistrements :
func getRecords(db *sql.DB) []User {
    var users []User
    rows, err := db.Query("SELECT name, age FROM users")
    if err != nil {
        panic(err.Error())
    }
    defer rows.Close()
 
    for rows.Next() {
        var user User
        err := rows.Scan(&user.Name, &user.Age)
        if err != nil {
            panic(err.Error())
        }
        users = append(users, user)
    }
    return users
}
Copier après la connexion

Dans cet exemple, nous utilisons la fonction Query et la fonction Scan pour obtenir plusieurs éléments de données, les enregistrer dans une tranche et les renvoyer.

3. Utilisez le langage Go pour le contrôle de la granularité des données

Dans les environnements professionnels réels, nous devons parfois contrôler la granularité des données pour obtenir de meilleures performances et une meilleure sécurité des données. Voici quelques exemples de contrôle de granularité des données :

  1. Requête sur une période donnée :
func queryUsersByTime(db *sql.DB, startTime, endTime string) []User {
    var users []User
    rows, err := db.Query("SELECT name, age FROM users WHERE created_at BETWEEN ? AND ?", startTime, endTime)
    if err != nil {
        panic(err.Error())
    }
    defer rows.Close()
 
    for rows.Next() {
        var user User
        err := rows.Scan(&user.Name, &user.Age)
        if err != nil {
            panic(err.Error())
        }
        users = append(users, user)
    }
    return users
}
Copier après la connexion

Dans cet exemple, nous avons utilisé l'opérateur BETWEEN pour spécifier une plage de temps à interroger pour les utilisateurs créés dans une plage de temps spécifique.

  1. Requête par groupe :
func queryUsersByGroup(db *sql.DB, age int) (int, error) {
    var count int
    err := db.QueryRow("SELECT COUNT(*) FROM users WHERE age=?", age).Scan(&count)
    if err != nil {
        return 0, err
    }
    return count, nil
}
Copier après la connexion

Dans cet exemple, nous utilisons la fonction COUNT et la clause WHERE pour compter le nombre d'utilisateurs d'un âge spécifié.

  1. Utiliser la requête d'index :
func queryUsersByIndex(db *sql.DB, name string) []User {
    var users []User
    rows, err := db.Query("SELECT name, age FROM users WHERE name=?", name)
    if err != nil {
        panic(err.Error())
    }
    defer rows.Close()
 
    for rows.Next() {
        var user User
        err := rows.Scan(&user.Name, &user.Age)
        if err != nil {
            panic(err.Error())
        }
        users = append(users, user)
    }
    return users
}
Copier après la connexion

Dans cet exemple, nous utilisons l'index (nom) pour interroger tous les utilisateurs portant un nom donné.

Résumé :

Cet article explique comment utiliser le langage Go pour créer un contrôle granulaire des données MySQL hautes performances. Avec ces requêtes et contrôles simples, vous pouvez écrire des opérations MySQL plus complexes en fonction de vos besoins spécifiques et maximiser l'efficacité du langage Go. Grâce à un contrôle granulaire des données, votre site Web ou votre système d'entreprise peut non seulement traiter les demandes de données plus rapidement, mais également stocker et manipuler les données sensibles de manière plus sécurisée.

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 de ce site Web
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

Outils d'IA chauds

Undresser.AI Undress

Undresser.AI Undress

Application basée sur l'IA pour créer des photos de nu réalistes

AI Clothes Remover

AI Clothes Remover

Outil d'IA en ligne pour supprimer les vêtements des photos.

Undress AI Tool

Undress AI Tool

Images de déshabillage gratuites

Clothoff.io

Clothoff.io

Dissolvant de vêtements AI

Video Face Swap

Video Face Swap

Échangez les visages dans n'importe quelle vidéo sans effort grâce à notre outil d'échange de visage AI entièrement gratuit !

Outils chauds

Bloc-notes++7.3.1

Bloc-notes++7.3.1

Éditeur de code facile à utiliser et gratuit

SublimeText3 version chinoise

SublimeText3 version chinoise

Version chinoise, très simple à utiliser

Envoyer Studio 13.0.1

Envoyer Studio 13.0.1

Puissant environnement de développement intégré PHP

Dreamweaver CS6

Dreamweaver CS6

Outils de développement Web visuel

SublimeText3 version Mac

SublimeText3 version Mac

Logiciel d'édition de code au niveau de Dieu (SublimeText3)

Sujets chauds

Tutoriel Java
1662
14
Tutoriel PHP
1262
29
Tutoriel C#
1235
24
Mysql et phpmyadmin: fonctionnalités et fonctions de base Mysql et phpmyadmin: fonctionnalités et fonctions de base Apr 22, 2025 am 12:12 AM

MySQL et PHPMyAdmin sont de puissants outils de gestion de la base de données. 1) MySQL est utilisé pour créer des bases de données et des tables et pour exécuter des requêtes DML et SQL. 2) PHPMYADMIN fournit une interface intuitive pour la gestion des bases de données, la gestion de la structure de la table, les opérations de données et la gestion de l'autorisation des utilisateurs.

MySQL vs d'autres langages de programmation: une comparaison MySQL vs d'autres langages de programmation: une comparaison Apr 19, 2025 am 12:22 AM

Par rapport à d'autres langages de programmation, MySQL est principalement utilisé pour stocker et gérer les données, tandis que d'autres langages tels que Python, Java et C sont utilisés pour le traitement logique et le développement d'applications. MySQL est connu pour ses performances élevées, son évolutivité et son support multiplateforme, adapté aux besoins de gestion des données, tandis que d'autres langues présentent des avantages dans leurs domaines respectifs tels que l'analyse des données, les applications d'entreprise et la programmation système.

Expliquez le but des clés étrangères dans MySQL. Expliquez le but des clés étrangères dans MySQL. Apr 25, 2025 am 12:17 AM

Dans MySQL, la fonction des clés étrangères est d'établir la relation entre les tables et d'assurer la cohérence et l'intégrité des données. Les clés étrangères maintiennent l'efficacité des données grâce à des contrôles d'intégrité de référence et aux opérations en cascade. Faites attention à l'optimisation des performances et évitez les erreurs courantes lorsque vous les utilisez.

Comparez et contrastez MySQL et Mariadb. Comparez et contrastez MySQL et Mariadb. Apr 26, 2025 am 12:08 AM

La principale différence entre MySQL et MARIADB est les performances, les fonctionnalités et la licence: 1. MySQL est développé par Oracle, et MariADB est sa fourche. 2. MariaDB peut mieux fonctionner dans des environnements à haute charge. 3.MariaDB fournit plus de moteurs et de fonctions de stockage. 4.MySQL adopte une double licence et MariaDB est entièrement open source. L'infrastructure existante, les exigences de performance, les exigences fonctionnelles et les coûts de licence doivent être pris en compte lors du choix.

Comment stocker en toute sécurité des objets JavaScript contenant des fonctions et des expressions régulières dans une base de données et restaurer? Comment stocker en toute sécurité des objets JavaScript contenant des fonctions et des expressions régulières dans une base de données et restaurer? Apr 19, 2025 pm 11:09 PM

Gérer en toute sécurité les fonctions et les expressions régulières dans JSON dans le développement frontal, JavaScript est souvent nécessaire ...

SQL vs MySQL: clarifier la relation entre les deux SQL vs MySQL: clarifier la relation entre les deux Apr 24, 2025 am 12:02 AM

SQL est un langage standard pour gérer les bases de données relationnelles, tandis que MySQL est un système de gestion de bases de données qui utilise SQL. SQL définit les moyens d'interagir avec une base de données, y compris les opérations CRUD, tandis que MySQL implémente la norme SQL et fournit des fonctionnalités supplémentaires telles que les procédures stockées et les déclencheurs.

Quel logiciel est le meilleur pour Yi Framework? Logiciel recommandé pour Yi Framework Quel logiciel est le meilleur pour Yi Framework? Logiciel recommandé pour Yi Framework Apr 18, 2025 pm 11:03 PM

Résumé du premier paragraphe de l'article: Lors du choix du logiciel pour développer des applications de framework YI, plusieurs facteurs doivent être pris en compte. Bien que les outils de développement d'applications mobiles natifs tels que Xcode et Android Studio puissent offrir un contrôle et une flexibilité solides, les cadres multiplateformes tels que React Native et Flutter deviennent de plus en plus populaires avec les avantages de pouvoir se déployer sur plusieurs plates-formes à la fois. Pour les développeurs nouveaux dans le développement mobile, les plates-formes à faible code ou sans code telles que Appsheet et Glide peuvent créer rapidement et facilement des applications. De plus, les fournisseurs de services cloud tels que AWS Amplify et Firebase fournissent des outils complets

Quelle est la différence entre les conditions de requête vraies et = vraies dans MySQL? Quelle est la différence entre les conditions de requête vraies et = vraies dans MySQL? Apr 19, 2025 pm 06:54 PM

La différence entre Istrue et = CONDITIONS DE RESTION TRUE DANS MYSQL dans la base de données MySQL, lors du traitement des valeurs booléennes (booléens), Istrue et = True ...

See all articles