MySQLインデックスの簡単な分析

MySQLインデックスの簡単な分析

データベース インデックスは、テーブル操作の速度を向上させることを目的としたデータ構造です。高速なランダム検索とレコードへのアクセスの効率的なソートを提供する 1 つ以上の列を使用してインデックスを作成できます。

インデックスを作成するには、SQL クエリを作成するためにどの列を使用するかを検討し、それらの列に 1 つ以上のインデックスを作成する必要があります。

実際、インデックスは、主キーまたはインデックス フィールドへのポインターを保持し、各レコードを実際のテーブル タイプにポイントするテーブルでもあります。

インデックスはユーザーには表示されません。クエリを高速化するためにのみ使用され、データベース検索エンジンによってレコードの検索速度を向上させるために使用されます。

SELECT ステートメントはこれらのテーブルに対して高速に動作するので、INSERT ステートメントと UPDATE ステートメントではインデックスの作成に時間がかかります。その理由は、データを挿入または更新するときに、データベースは挿入または更新されたインデックス値も更新する必要があるためです。

シンプルでユニークなインデックス

テーブルに一意のインデックスを作成できます。一意のインデックスとは、2 つの行が同じインデックス値を持つことができないことを意味します。テーブルにインデックスを作成する構文は次のとおりです。

ユニークインデックスを作成する index_name
ON テーブル名 (列1、列2、...);

1 つ以上の列を使用してインデックスを作成できます。たとえば、tutorial_author を使用して tutorials_tbl にインデックスを作成できます。

一意のインデックス AUTHOR_INDEX を作成する
ON tutorials_tbl (チュートリアル作成者)

テーブルに単純なインデックスを作成できます。単純なインデックスを作成するには、UNIQUE キーワードを省略するだけです。単純なインデックスでは、テーブル内に繰り返し値を含めることができます。

インデックス列の値を降順で並べ替えたい場合は、列名の後に予約語 DESC を追加します。

mysql> 一意のインデックス AUTHOR_INDEX を作成します
オン tutorials_tbl (tutorial_author DESC)

ALTERコマンドを使用してインデックスを追加および削除します

テーブルに追加できるインデックスには 4 つの種類があります。

  • ALTER TABLE tbl_name ADD PRIMARY KEY (column_list): 主キー (PRIMARY KEY) を追加します。つまり、インデックス値は一意である必要があり、空にすることはできません。
  • ALTER TABLE tbl_name ADD UNIQUE index_name (column_list): 値が一意であるインデックスを作成します (ただし、NULL 値は使用できませんが、他の値は複数回出現できます)。
  • ALTER TABLE tbl_name ADD INDEX index_name (column_list): 任意の値が複数回出現する通常のインデックスを追加します。
  • ALTER TABLE tbl_name ADD FULLTEXT index_name (column_list): テキスト検索用の特別な FULLTEXT インデックスを作成します。

以下は、既存のテーブルにインデックスを追加する例です。

mysql> ALTER TABLE testalter_tbl ADD INDEX (c);

インデックスは、DROP 句を指定した ALTER コマンドを使用して削除できます。上記で作成したインデックスを削除するには、次の例を試してください。

mysql> ALTER TABLE testalter_tbl DROP INDEX (c);

ALTERコマンドを使用してPRIMARY KEYを追加および削除します。

同様の方法で主キーを追加することもできます。ただし、列内で主キーが適切に使用されるようにするには、NOT NULL の使用を指定する必要があります。

以下は、既存のテーブルに主キーを追加する例です。列を主キーとして追加する前に、列に NOT NULL 属性を追加する必要があります。

mysql> ALTER TABLE testalter_tbl MODIFY i INT NOT NULL;
mysql> ALTER TABLE testalter_tbl に PRIMARY KEY (i) を追加します。

次のように ALTER コマンドを使用して主キーを削除できます。

mysql> ALTER TABLE testalter_tbl で PRIMARY KEY を削除します。

主キーではないインデックスを削除するには、インデックス名を指定する必要があります。

インデックス情報を表示する

SHOW INDEX コマンドを使用すると、テーブルに関連付けられているすべてのインデックスを一覧表示できます。 出力を垂直にフォーマットします (\G で指定)。これは、出力を要約する長い行を回避するのに役立ちます。

次の例を試してください。

mysql> SHOW INDEX FROM table_name\G
........

要約する

上記は編集者が紹介したMySQLインデックスです。皆様のお役に立てれば幸いです。ご質問がございましたら、メッセージを残していただければ、編集者がすぐに返信いたします。また、123WORDPRESS.COM ウェブサイトをサポートしてくださっている皆様にも感謝申し上げます。

以下もご興味があるかもしれません:
  • MySQL のインデックスとビューの使用方法と違いの詳細な説明
  • MySQL パーティション フィールド列に別のインデックスを作成する必要がありますか?
  • MySQL の冗長インデックスと重複インデックスの詳細な説明
  • MySQLのジョイントインデックス機能の分析と使用例
  • MySql インデックスの詳細な紹介と正しい使用方法
  • MySQLのINサブクエリによってインデックスが使用できなくなる問題を解決する
  • mysql のインデックスと FROM_UNIXTIME に関する問題
  • テーブルの作成、フィールドの追加、フィールドの変更、インデックスの追加によく使用される MySQL の SQL 文の概要
  • MySQL の結合テーブルにインデックスを作成する方法
  • MySQLインデックスの使用に関するヒントと注意事項
  • MySQLのインデックス設計の原則と一般的なインデックスの違いについて簡単に説明します。
  • MySQL のフィールドに一意のインデックスを追加および削除する方法
  • MySQL でのインデックスの追加と削除に関連する操作
  • MySQLインデックス操作コマンドの詳しい説明
  • MySQLが全文インデックス共有を実現
  • MySQL テーブルを変更して、複数の列 (フィールド) とインデックスを一度に追加する方法
  • MySQL を理解する - インデックス作成と最適化の概要
  • MySQLの権限とインデックスの詳細な説明

<<:  VUE+Express+MongoDBのフロントエンドとバックエンドの分離によるノートウォールの実現

>>:  nginxとバックエンドポート間の競合の解決策

推薦する

レスポンシブなアコーディオン効果を実現するための CSS3 の詳細な説明

最近、外国人が CSS3 を使用してアコーディオン効果を実現しているビデオを見たので、自分で学習した...

Nginx 書き換えジャンプの適用シナリオの詳細な説明

アプリケーションシナリオ1: ドメイン名ベースのリダイレクト会社の古いドメイン名は www.accp...

CocosCreatorでゲームコントローラーを使用する方法

目次1. シーンレイアウト2. ハンドルリスナーを追加する1. イベントの変更を監視する2. 座標設...

Vue3 テーブルコンポーネントの使用

目次1. Antデザインビュー1. 公式ウェブサイトアドレス2. 使い方3.電子書籍テーブルを表示す...

JavaScriptアップロードファイル制限パラメータケースの詳細な説明

プロジェクトシナリオ: 1. アップロードファイルの制限関数: 1. フロントエンド操作による異常な...

ウェブデザイナーのための超便利なツール 50 選

ウェブデザイナーになるのは簡単ではありません。デザインやアーキテクチャを考慮するだけでなく、さまざま...

純粋な CSS3 で美しい入力ボックスアニメーションスタイルライブラリを実現 (テキスト入力愛)

純粋な CSS3 で実装された美しい入力ボックス アニメーション スタイル ライブラリを共有します ...

ファイルのダウンロードを実現する javascript Blob オブジェクト

目次例示する1. ブロブオブジェクト2. フロントエンド3. バックエンド要約する例示する最近、ファ...

Linux SecureCRT の文字化けの解決方法

SecureCRT が文字化けした文字を表示する状況を見てみましょう。例えば: ではリセットしてみま...

MySQLサービスが起動しても接続されない問題の解決策

mysql サービスは開始されていますが、接続できません。この問題を解決するにはどうすればよいでしょ...

MySQLデータのセキュリティを確保するための提案

データは企業の中核資産であり、企業にとって最も重要なタスクの 1 つです。注意しないと、データが意図...

Linux で killall コマンドを使用してプロセスを終了する 8 つの例

Linux コマンドラインには、プロセスを強制終了するためのコマンドが多数用意されています。たとえば...

MySQLデータベースを別のマシンに移行する方法の詳細な説明

1. まず、移行サーバー上のデータ ファイルを見つけます。MySQL 5.7 とデフォルトのインスト...

今日、今週、今月、先月のMySQLクエリデータ

今日 テーブル名から * を選択します。ここで、to_days(時間フィールド名) = to_day...

データバインディングとリストデータの表示にはVue3を使用する

目次1. Vue2との比較1. Vue3の新機能2. Vue2とVue3の応答原理の比較3. 配列の...