インターネットの発展とデータ量の増加に伴い、データの保存と管理には高速な検索が必要になりました。現在最も人気のあるリレーショナル データベースの 1 つである MySQL は、強力なクエリ機能と安定したパフォーマンスを備えています。この記事ではGo言語を使って高速なデータ取得を実現する方法を紹介します。
1. MySQL データベースの基本
MySQL で新しいデータベースを作成するには、次のコマンドを使用できます:
CREATE DATABASE database_name;
次のコマンドを使用して、指定したデータベースに入ります:
USE database_name;
テーブルを作成するには、次のコマンドを使用します。
CREATE TABLE table_name ( column_name1 data_type1, column_name2 data_type2, ... column_nameN data_typeN );
たとえば、ユーザー テーブルを作成できます:
CREATE TABLE user ( id INT PRIMARY KEY, name VARCHAR(20), age INT );
データを挿入するには、次のコマンドを使用します。
INSERT INTO user (id, name, age) VALUES (1, 'Tom', 28);
データをクエリするには、次のコマンドを使用します。 :
SELECT * FROM user WHERE age >= 25;
2. Go を使用して MySQL に接続します
まず、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", "user:password@tcp(ip:port)/database_name") if err != nil { panic(err.Error()) } defer db.Close() }
Youユーザー、パスワードを入力する必要があります。ip、port、database_name を正しい値に置き換えてください。
データをクエリするには、次のコードを使用します。
rows, err := db.Query("SELECT * FROM user WHERE age >= ?", 25) if err != nil { panic(err.Error()) } defer rows.Close() for rows.Next() { var id int var name string var age int err := rows.Scan(&id, &name, &age) if err != nil { panic(err.Error()) } fmt.Println(id, name, age) }
SELECT ステートメントとクエリ パラメーターを正しい値に置き換える必要があります。
次のコードを使用してデータを挿入します。
stmt, err := db.Prepare("INSERT INTO user (id, name, age) VALUES (?, ?, ?)") if err != nil { panic(err.Error()) } defer stmt.Close() _, err = stmt.Exec(2, "Jerry", 30) if err != nil { panic(err.Error()) }
INSERT ステートメントと挿入パラメーターを正しい値に置き換える必要があります。
3. インデックスを使用してクエリを高速化する
MySQL のインデックスは、テーブル内の特定の列に対するクエリ操作を高速化できるデータ構造です。 Go 言語でのデータ クエリに MySQL データベースを使用する場合、インデックスを使用するとクエリ効率が大幅に向上します。次に、インデックスに関する基本的な知識を示します。
MySQL の一般的なインデックス タイプは、B ツリー インデックス、ハッシュ インデックス、フルテキスト インデックスなどです。 。最も一般的に使用されるのは B-Tree インデックスです。
次のステートメントを使用して、テーブル内の列のインデックスを作成します。
CREATE INDEX index_name ON table_name (column_name);
たとえば、インデックスを作成できます。 user テーブルの age 列に対してインデックスを作成します:
CREATE INDEX age_index ON user (age);
クエリを実行する場合、次のステートメントを使用して MySQL にインデックスの使用を強制できます。
SELECT * FROM user USE INDEX (age_index) WHERE age >= 25;
実際の状況では、MySQL は使用する最も適切なインデックスを自動的に選択します。次のコマンドを使用して、クエリの実行計画を表示できます。
EXPLAIN SELECT * FROM user WHERE age >= 25;
4. 概要
この記事では、Go 言語を使用して MySQL データベースに接続し、インデックスを使用して高速化する方法を紹介します。クエリ。実際のアプリケーションでは、適切なインデックスを使用し SQL ステートメントを最適化すると、データベースのクエリ効率とパフォーマンスが大幅に向上し、迅速なデータ取得が実現します。
以上がGo 言語で MySQL を使用して高速なデータ取得を実現するの詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。