目次
準備作業
統計操作の作成
テーブル内のすべてのレコードの数をクエリする
テーブルの行 10 から行 20 までのレコードをクエリします
テーブルの行 10 から行 20 までのレコードの給与フィールドの平均値をクエリします
テーブル内の給与フィールドの最小値と最大値をクエリします
概要
ホームページ データベース mysql チュートリアル Go 言語を使用して高性能 MySQL 統計演算を作成する方法

Go 言語を使用して高性能 MySQL 統計演算を作成する方法

Jun 17, 2023 am 11:11 AM
mysql 言語を移動 統計演算

インターネットの急速な発展に伴い、データの統計と分析の重要性がますます高まっており、インターネット上で最も一般的に使用されているデータベースの 1 つである MySQL も、データの統計と分析において重要な役割を果たしています。 Go 言語は、その高い同時実行性と優れたパフォーマンスにより、ますます多くの開発者に選ばれる言語となっています。この記事では、Go 言語を使用して高パフォーマンスの MySQL 統計演算を作成する方法を紹介します。

準備作業

Go 言語を使用して MySQL を操作する前に、まず go-sql-driver/mysql ライブラリをインストールする必要があります。次のコマンドを使用してインストールできます:

go get -u github.com/go-sql-driver/mysql
ログイン後にコピー

次に、MySQL データベースに接続する必要があります。次のコードを使用できます:

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

func main() {
    db, err := sql.Open("mysql", "<dbuser>:<dbpassword>@tcp(<dbhost>:<dbport>)/<dbname>")
    if err != nil {
        panic(err.Error())
    }
    defer db.Close()

    err = db.Ping()
    if err != nil {
        panic(err.Error())
    }

    // 连接成功
}
ログイン後にコピー

コードでは、sql.Open() メソッドを使用して MySQL データベースに接続します。ここで、<dbuser>、<dbpassword>、<dbhost>、 <dbport> と <dbname> は、それぞれデータベースのユーザー名、パスワード、ホスト名、ポート、データベース名です。次に、db.Ping() メソッドを使用して、接続が成功したかどうかをテストします。

統計操作の作成

次に、次の統計操作を実装します。

テーブル内のすべてのレコードの数をクエリします

テーブルの 10 番目をクエリします。テーブルの行から行 20 までのレコードをクエリします。

テーブルの行 10 から行 20 までのレコードの給与フィールドの平均値をクエリします。

テーブルの行 10 から行 20 までの給与フィールドの平均値をクエリします。テーブルの給与フィールド

まず、クエリ結果を保存する構造を定義する必要があります。次のコードを使用できます:

type User struct {
    Id     int    `json:&quot;id&quot;`
    Name   string `json:&quot;name&quot;`
    Age    int    `json:&quot;age&quot;`
    Gender string `json:&quot;gender&quot;`
    Salary int    `json:&quot;salary&quot;`
}
ログイン後にコピー

次に、上記の 4 つの操作をそれぞれ実装します。

テーブル内のすべてのレコードの数をクエリする

func countUsers(db *sql.DB) int {
    var count int

    err := db.QueryRow(&quot;SELECT COUNT(*) FROM users&quot;).Scan(&amp;count)
    if err != nil {
        panic(err.Error())
    }

    return count
}
ログイン後にコピー

コードでは、SQL ステートメント SELECT COUNT(*) FROM users を使用して、すべてのレコードの数をクエリします。テーブル内のレコード。 db.QueryRow() メソッドを使用してクエリを実行し、結果を count 変数に保存し、最後に結果を返します。

テーブルの行 10 から行 20 までのレコードをクエリします

func getUsers(db *sql.DB, offset, limit int) []User {
    rows, err := db.Query(fmt.Sprintf(&quot;SELECT * FROM users LIMIT %d,%d&quot;, offset, limit))
    if err != nil {
        panic(err.Error())
    }
    defer rows.Close()

    var users []User
    for rows.Next() {
        var user User
        err := rows.Scan(&amp;user.Id, &amp;user.Name, &amp;user.Age, &amp;user.Gender, &amp;user.Salary)
        if err != nil {
            panic(err.Error())
        }
        users = append(users, user)
    }

    return users
}
ログイン後にコピー

コードでは、SQL ステートメントを使用しますSELECT * FROM users LIMIT &lt;offset&gt;,&lt;limit&gt ; テーブル内のオフセット 1 行からオフセット制限行までのレコードをクエリします。 db.Query() メソッドを使用してクエリを実行し、クエリ結果をループし、各レコードを users 配列に保存し、最後にそれを返します。

テーブルの行 10 から行 20 までのレコードの給与フィールドの平均値をクエリします

func averageSalary(db *sql.DB, offset, limit int) int {
    var avgSalary int

    err := db.QueryRow(fmt.Sprintf(&quot;SELECT AVG(salary) FROM users LIMIT %d,%d&quot;, offset, limit)).Scan(&amp;avgSalary)
    if err != nil {
        panic(err.Error())
    }

    return avgSalary
}
ログイン後にコピー

コードでは、SQL ステートメントを使用しますSELECT AVG(salary) FROM ユーザー LIMIT &lt;offset&gt;,&lt;limit&gt;テーブル内のオフセット 1 からオフセット制限までのレコードの給与フィールドの平均値をクエリします。 db.QueryRow() メソッドを使用してクエリを実行し、結果を avgSalary 変数に保存し、最後に結果を返します。

テーブル内の給与フィールドの最小値と最大値をクエリします

func minMaxSalary(db *sql.DB) (int, int) {
    var minSalary, maxSalary int

    err := db.QueryRow(&quot;SELECT MIN(salary),MAX(salary) FROM users&quot;).Scan(&amp;minSalary, &amp;maxSalary)
    if err != nil {
        panic(err.Error())
    }

    return minSalary, maxSalary
}
ログイン後にコピー

コードでは、SQL ステートメントを使用しますSELECT MIN(salary),MAX(salary) FROM users テーブル内の給与フィールドの最小値と最大値をクエリします。 db.QueryRow() メソッドを使用してクエリを実行し、結果を minSalary 変数と maxSalary 変数に格納し、最後にそれらを返します。

概要

この記事では、Go 言語を使用して高パフォーマンスの MySQL 統計操作を作成する方法を紹介します。まず MySQL データベースに接続し、次にクエリ テーブルのすべてのレコード数、クエリ テーブルの行 10 ~ 20 のレコード、行 10 ~ 20 のレコードの給与フィールドの平均値を実装しました。クエリ テーブル、およびテーブル内の給与フィールドの最小値と最大値に対するクエリ 4 つの操作。これらの操作はシンプルで理解しやすいだけでなく、優れたパフォーマンスを備えているため、開発者がデータ統計や分析タスクをより効率的に完了するのに役立ちます。

以上がGo 言語を使用して高性能 MySQL 統計演算を作成する方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。

ホットな記事タグ

メモ帳++7.3.1

メモ帳++7.3.1

使いやすく無料のコードエディター

SublimeText3 中国語版

SublimeText3 中国語版

中国語版、とても使いやすい

ゼンドスタジオ 13.0.1

ゼンドスタジオ 13.0.1

強力な PHP 統合開発環境

ドリームウィーバー CS6

ドリームウィーバー CS6

ビジュアル Web 開発ツール

SublimeText3 Mac版

SublimeText3 Mac版

神レベルのコード編集ソフト(SublimeText3)

PHPのビッグデータ構造処理スキル PHPのビッグデータ構造処理スキル May 08, 2024 am 10:24 AM

PHPのビッグデータ構造処理スキル

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか? Jun 03, 2024 pm 08:11 PM

PHP で MySQL クエリのパフォーマンスを最適化するにはどうすればよいですか?

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか? Jun 03, 2024 pm 12:19 PM

PHP で MySQL のバックアップと復元を使用するにはどうすればよいですか?

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか? Jun 02, 2024 pm 02:26 PM

PHP を使用して MySQL テーブルにデータを挿入するにはどうすればよいですか?

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法 Dec 09, 2024 am 11:42 AM

MySQL 8.4 で mysql_native_password がロードされていないエラーを修正する方法

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか? Jun 02, 2024 pm 02:13 PM

PHP で MySQL ストアド プロシージャを使用するにはどうすればよいですか?

PHP を使用して MySQL テーブルを作成するにはどうすればよいですか? PHP を使用して MySQL テーブルを作成するにはどうすればよいですか? Jun 04, 2024 pm 01:57 PM

PHP を使用して MySQL テーブルを作成するにはどうすればよいですか?

Go 言語でのパフォーマンス テストと単体テストの違い Go 言語でのパフォーマンス テストと単体テストの違い May 08, 2024 pm 03:09 PM

Go 言語でのパフォーマンス テストと単体テストの違い

See all articles