sql >> データベース >  >> RDS >> Mysql

MySQLでインデックスを作成する方法

    MySQLインデックスを使用すると、ルックアップを簡単に実行でき、SQLクエリの速度が向上します。 MySQL CREATE INDEXステートメントを使用して、データベースのパフォーマンスを向上させるためにMySQLでインデックスを作成する方法は次のとおりです。

    MySQLでのインデックス作成のしくみ

    通常、WHERE句またはJOINSなどの他の種類のルックアップを使用してSQLクエリを実行する場合、MySQLはテーブル内のすべてのレコードをスキャンして、一致する行を見つける必要があります。テーブルに数百万の行がある場合、これには非常に時間がかかり、SQLクエリの速度が大幅に低下する可能性があります。

    MySQLインデックスは、ルックアップとマッチング用に最適化されたBツリー構造でインデックス付きの列の値を維持することにより、SQLクエリを高速化します。したがって、インデックスを使用すると、1つ以上の値に一致する行をすばやく簡単に見つけることができます。

    デフォルトでは、MySQLはデータベース内のすべての主キー列のインデックスを作成します。

    ボーナスリード:MySQLでストアドプロシージャを作成する方法

    MySQLでインデックスを作成する方法

    MySQLでインデックスを作成する手順は次のとおりです。テーブルの作成時にインデックスを作成することも、後で追加することもできます。これら両方のアプローチを見ていきます。

    テーブル作成中にMySQLインデックスを作成する方法

    テーブルの作成中にインデックスを作成するための構文は次のとおりです

    CREATE TABLE table_name(
       column_definitions,
       INDEX (list_of_columns) 
    );

    上記のクエリでは、 table_name 作成するテーブルであり、 column_definitions 列と定義のリストです。

    INDEX(list_of_columns) MySQLインデックスを作成する場所です。インデックスは、 list_of_columnsとして言及されている列のコンマ区切りリスト用に作成されます

    ボーナスリード:MySQLでユーザーを作成する方法

    これが例です。

    CREATE TABLE orders(
       order_id INT PRIMARY KEY,
       sale INT NOT NULL,
       product_id INT NOT NULL,
       product_name VARCHAR(10),
       INDEX (product_id) 
    );

    上記のクエリでは、 product_idのインデックスを作成しました 列。

    複数の列を使用してインデックスを作成する方法の例を次に示します。

    CREATE TABLE orders(
       order_id INT PRIMARY KEY,
       sale INT NOT NULL,
       product_id INT NOT NULL,
       product_name VARCHAR(10),
       INDEX (product_id, order_id) 
    );

    上記のクエリでは、複数の列product_id、order_id

    のインデックスを作成しました。

    ボーナスリード:MySQLでデータベースを作成する方法

    テーブルの列にインデックスを追加する方法

    列または列のセットにインデックスを追加してから、CREATEINDEXステートメントを使用するとします。 CREATEINDEXステートメントの構文は次のとおりです

    CREATE INDEX index_name ON table_name (column_list)

    上記のクエリでは、インデックス名、インデックスを作成する必要のあるテーブル、およびインデックスに含める列のリストを指定します。

    product_nameに新しいインデックスを追加する例を次に示します。 上記の注文 テーブル

    CREATE INDEX prod_name_index ON orders (product_name);

    テーブルに追加されたインデックスを表示するには、SHOWINDEXESステートメントを使用できます。 SHOWINDEXESの構文は次のとおりです

    SHOW INDEXES from table_name;

    注文のインデックスを表示する例を次に示します。 table
    SHOW INDEXES from orders;

    上記の記事がMySQLでインデックスを作成するのに役立つことを願っています。

    Ubiqを使用すると、データを数分で簡単に視覚化し、リアルタイムのダッシュボードで監視できます。今日お試しください。

    1. 複数のINSERTステートメントと複数の値を持つ単一のINSERT

    2. PostgreSQLのRPAD()関数

    3. MySQLテーブルにインデックスを作成するためのベストプラクティス–ローリングインデックスビルド

    4. MySQL4.0で作成されたタイムスタンプ列と最終更新されたタイムスタンプ列の両方を持つ