Golang TiDB を呼び出す方法

WBOY
リリース: 2023-05-13 10:24:07
オリジナル
684 人が閲覧しました

はじめに

インターネット業界の継続的な発展に伴い、データ処理方法には多くの変化が生じました。従来のリレーショナル データベースは、大量のデータの同時読み取りと書き込み、および高可用性の要件に耐えられなくなり、分散データベースに徐々に置き換えられています。 TiDB は、PingCAP が提供する分散型 NewSQL データベースで、MySQL プロトコルと完全な互換性があり、分散型、高可用性、拡張性があり、インターネット、金融、電子商取引などの分野で広く使用されています。

TiDB を使用する過程で、Golang は一般的に使用されるプログラミング言語です。豊富なサードパーティ ライブラリと簡潔な構文機能を提供します。TiDB と併用すると、効率的で信頼性の高いデータ処理を完了できます。タスク。この記事では、開発者の参考のために、Golang で TiDB を呼び出す方法を主に紹介します。

準備

TiDB の呼び出しを開始する前に、次の準備を完了する必要があります:

1. TiDB のインストール

公式 Web サイトから TiDB をダウンロードします。パッケージをローカル ディレクトリに解凍するだけです。

2. TiDB データベースの作成

TiDB をローカルで起動した後、MySQL クライアントを使用して TiDB に接続します。デフォルトのユーザー名とパスワードは root です。接続が成功したら、SQL ステートメントを使用してテスト テーブル:

CREATE DATABASE test;
USE test;
CREATE TABLE user (
  id INT(11) NOT NULL AUTO_INCREMENT,
  name VARCHAR(20) NOT NULL,
  age INT(3) NOT NULL,
  PRIMARY KEY (id)
);
INSERT INTO user(name, age) VALUES('Tom', 20);
ログイン後にコピー

3. Golang のインストール

公式 Web サイトから Golang バイナリ パッケージをダウンロードし、公式ドキュメントに従ってインストールします。インストールが完了したら、環境変数を設定し、インストールが成功したかどうかをテストします。

TiDB を呼び出すコードを作成する

上記の準備が完了したら、データ処理のために TiDB を呼び出す Golang コードを作成できます。読者の参考のために、サンプル コードを以下に示します。

package main

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

func main() {
    // 定义连接字符串
    connStr := fmt.Sprintf("%s:%s@tcp(%s:%d)/%s?charset=%s",
        "root", "", "127.0.0.1", 4000, "test", "utf8mb4")

    // 连接数据库
    db, err := sql.Open("mysql", connStr)
    if err != nil {
        fmt.Printf("链接数据库失败: %s
", err)
        return
    }
    defer db.Close()

    // 查询数据
    rows, err := db.Query("SELECT * FROM user")
    if err != nil {
        fmt.Printf("查询数据失败: %s
", err)
        return
    }
    defer rows.Close()

    // 循环读取数据
    for rows.Next() {
        var id int
        var name string
        var age int
        err := rows.Scan(&id, &name, &age)
        if err != nil {
            fmt.Printf("读取数据失败: %s
", err)
            continue
        }

        fmt.Printf("ID: %d, Name: %s, Age: %d
", id, name, age)
    }

    // 处理异常
    if err := rows.Err(); err != nil {
        fmt.Printf("处理异常失败: %s
", err)
        return
    }
}
ログイン後にコピー

上記のコードを参照すると、Golang で TiDB を呼び出す具体的な手順がわかります:

1. 接続文字列を定義します

TiDB に接続する前に、次のことが必要です。最初に接続文字列を定義します。これには、ユーザー名、パスワード、ホスト名、ポート番号、データベース名、文字セット、その他の情報が含まれます。 TiDB については次の点に注意してください。

  • TiDB は MySQL プロトコルに基づいており、デフォルトでポート 4000 を使用します。
  • TiDB は utf8mb4 および utf8mb4_unicode_ci 文字セットをサポートしており、utf8mb4 が推奨されます。

2. データベースへの接続

接続文字列を定義した後、sql.Open 関数を使用してデータベースに接続できます。この関数は、データベース接続プールを表す sql.DB オブジェクトを返します。ここでの接続プールは使用時に自動的に管理され、開発者は接続を閉じるために Close メソッドを明示的に呼び出す必要がないことに注意してください。

3. クエリ データ

接続が成功したら、db.Query 関数を使用して、クエリ データを例として SQL ステートメントを実行できます。この関数は、クエリ結果セットを表す sql.Rows オブジェクトを返します。クエリ結果セットも接続プールであるため、開発者は明示的に Close メソッドを呼び出す必要がないことに注意してください。

4. データを読み取るループ

上記の rows.Next() および rows.Scan() 関数を通じて、データの各行をループで読み取り、変数に保存できます。ここでの rows.Next() 関数は次のレコードがあるかどうかを表し、rows.Scan() 関数は現在の行の列値の読み取りを表します。

5. 例外の処理

TiDB を使用するプロセスでは、接続の失敗、クエリ ステートメントのエラー、ループ内のデータの読み取りの失敗など、多くの例外が発生する可能性があります。これらの例外は時間内に処理する必要があります。そうしないと、システムのクラッシュやその他の問題が発生する可能性があります。

概要

この記事では主に、Golang でデータ処理を行うために TiDB を呼び出す方法を紹介します。上記のサンプル コードを通じて、TiDB が効率的で信頼性の高い分散データ処理サービスを提供できること、および一般的に使用されるプログラミング言語である Golang を TiDB と併用すると開発効率が大幅に向上することがわかります。この記事が大多数の開発者にとって役立つことを願っています。

以上がGolang TiDB を呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート