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とバックエンドポート間の競合の解決策

推薦する

操作例 MySQL ショートリンク

MySQL ショートリンクの設定方法1. mysql 接続番号ステートメントコマンドを確認します。 ...

JavaScriptはスライダーを介してWebページの色を変更することを実装します

みなさんこんにちは、今日はウェブフロントエンドのHTMLを見ていたら、inputタグのtype属性が...

NavicatがMySQL8.0.11に接続するとエラー2059が発生する

間違いNavicat Premium を使用して MySQL に接続すると、次のエラーが発生します。...

http.server に基づく LAN サーバーの構築プロセスの分析

皆さんはこのような状況に遭遇したことがあるでしょうか。プロジェクトや研究開発を行う際に、緊急にファイ...

npm 淘宝ミラー変更説明

1. トップレベルの使用法1. cnpmをインストールする npm i -g cnpm --regi...

vue keep-alive の簡単な概要

1. 機能主にコンポーネントの状態を保持したり、再レンダリングを回避したりするために使用されます。 ...

vue.js ベースの QQ チャット ルーム

目次導入効果のデモンストレーションは次のとおりです。 MChat コンポーネントのレンダリング: I...

CSS3 のフィルタプロパティの使用に関する詳細な説明

最近、イントラネットポータルを修正していたときに、フィルターを使用する必要がある箇所に遭遇しました。...

MySQL でのフィルター条件なしのカウントの詳細な説明

カウント(*)成し遂げる1. MyISAM: テーブル内の行の総数をディスク上に保存し、フィルタリン...

Linuxのファイル操作の知識ポイントを詳しく解説

ファイル操作に関連するシステムコール作成するint creat(const char *ファイル名,...

Flexレイアウトとスケーリング計算についての簡単な説明

1. Flexレイアウトの紹介Flex は Flexible Box の略で、「柔軟なレイアウト」を...

Vue大画面表示適応方法

この記事では、vueの大画面表示適応の具体的なコードを参考までに紹介します。具体的な内容は以下のとお...

MySQLの7種類のログの概要

MySQL には次のログ ファイルがあります。 1: 再実行ログ2: ロールバックログ(元に戻すログ...

MySQL 8.0.20 圧縮版のインストールチュートリアル(画像とテキスト付き)

1. MySQL ダウンロード アドレス。 http://ftp.ntu.edu.tw/MySQL...

ページのキャッシュを防ぐソリューション

解決: <head> に次のコードを追加します。コードをコピーコードは次のとおりです。 ...