MySQLにおけるテーブルインデックスの定義方法と導入

MySQLにおけるテーブルインデックスの定義方法と導入

概要

インデックスは、テーブル内の 1 つ以上の列に基づいて DBMS によって特定の順序で作成される列値とレコード行の対応表であり、DBA 管理を容易にします。

  • インデックスはファイルの形式で保存されます。DBMS はテーブルのすべての内容を同じインデックス ファイルに保存するため、ディスク領域を占有します。インデックスの数が多い場合、データ ファイルよりも早く最大ファイル サイズに達する可能性があります。
  • インデックスによりクエリ速度は向上しますが、テーブルの更新速度も低下します。テーブル内のインデックス列のデータを更新すると、インデックス ツリーがテーブルの内容と完全に一致するように、インデックスが自動的に更新されます。そのため、インデックスの数が多いほど、更新時間は長くなります。

インデックスは用途に応じて論理的に3つのカテゴリに分類されます。

  1. 通常のインデックス (INDEX): 制限のない最も基本的なインデックス タイプです。通常はINDEXまたはKEYキーワードを使用します
  2. ユニーク インデックス (UNIQUE): インデックス内のすべての値は 1 回だけ出現でき、一意である必要があります。通常はキーワード UNIQUE が使用されます。
  3. 主キー: 主キーは一意のインデックスです。主キーを作成するときは、キーワード PRIMARY KEY を指定する必要があり、null 値を持つことはできません。これは通常、テーブルの作成時に指定され、テーブルを変更することによって追加することもできます。各テーブルには、主キーを 1 つだけ持つことができます。

インデックスを作成

インデックスを作成するには、次の 3 つの方法があります。

インデックスの作成

CREATE [UNIQUE] INDEX インデックス名
tbl_name(index_col_name,...) はありません
  1. UNIQUE: 一意のインデックスを作成することを指定します。テーブルに対して複数のインデックスを作成でき、各インデックスにはテーブル内で一意の名前が付けられます。
  2. tabl_name: データベーステーブル名
  3. index_col_name : インデックスの説明。形式はcol_name[(長さ)][ASC|DESC]です。

索引記述の3つの文法要素

  • 列名
  • 長さ
  • 昇順|降順
mysql>インデックスindex_customersを作成します
-> NO mysql_test.customers (cust_name(3)ASC)
クエリは正常、影響を受けた行は 0 行 (0.20 秒)
レコード:0 重複:0 警告:0

テーブルの作成

  • [CONSTRAINT [symbol]] PRIMARY KEY (index_col_name,...) : 新しいテーブルを作成するときに主キーを作成します
  • {INDEX|KEY}[index_name](index_col_name,...) : テーブルの作成時にテーブルのインデックスを作成します。
  • [CONSTRAINT [シンボル]] UNIQUE [INDEX|KEY] [index_name] (index_col_name,...) : テーブルを作成するときに一意のインデックスを作成するために使用されます
  • [CONSTRATIN [シンボル]] FOREIGN KEY[インデックス名] (インデックス列名,...) : テーブル作成時に外部キーを作成します
  • KEY : キーワードINDEXの同義語
  • CONSTRAINT: 主キー、UNIQUE キー、外部キーの名前を定義します。CREATE TABLE を使用して列オプションを定義する場合、列定義の直後に PRIMARY KEY を追加することで主キーを追加できます。主キーが複数の列で構成される複数列インデックスで構成されている場合、この方法は使用できません。
mysql> mysql_testを使用します
データベースが変更されました
mysql> テーブル seller を作成する
->(
-> seller_id int NOT NULL AUTO_INCREMENT
-> seller_name char(50) NOT NLULL、
-> seller_address char(50) null、
-> 製品タイプ int(5) NULL
-> 売上 int NULL
-> 主キー (seller_id,product_type)
-> INDEX index_seller(販売)
->)
クエリは正常、影響を受けた行は 0 行 (0.20 秒)

テーブルの変更

要約する

以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。

以下もご興味があるかもしれません:
  • MySQLテーブルインデックスの重要なポイント

<<:  mini-vueレンダリングのシンプルな実装

>>:  5分でWebRTCビデオチャットを構築する

推薦する

Vue 仮想リストの実例

目次序文デザイン成し遂げるまとめ序文最近は、いつも延々とスワイプしています。 Weibo をチェック...

Html+CSS 描画三角形アイコン

まずはレンダリングを見てみましょう: XML/HTML コードコンテンツをクリップボードにコピー&l...

MySQLデータベース最適化技術の簡単な紹介

成熟したデータベース アーキテクチャは、最初から高可用性、高スケーラビリティなどの機能を備えて設計さ...

JavaScript で localStorage を使用する方法

.NET の世界に参入したい開発者であれば、何が可能なのかを知る必要があります。 .NET Fram...

require/import キーワードを使用して v-for ループでローカル画像をインポートするいくつかの方法

目次問題の説明方法 1 (バックエンドが画像 URL を返す)方法 2 (フロントエンドで requ...

Django+vue 登録とログインのサンプルコード

登録するフロントエンドは、vue の axios を使用して値を渡し、取得したアカウントとパスワード...

Vant Uploaderは1枚以上の写真をアップロードするコンポーネントを実装します

この記事では、1枚以上の写真をアップロードするためのVant Uploaderコンポーネントを紹介し...

衝突検出を実装するためのjs

この記事の例では、衝突検出を実装するためのjsの具体的なコードを参考までに共有しています。具体的な内...

NginxにおけるRewriteのリダイレクト設定と実践の詳しい解説

1: アドレス書き換えとア​​ドレス転送の意味を理解する。アドレス書き換えとア​​ドレス転送は異なる...

Linux デュアル ネットワーク カード バインディング スクリプト メソッドの例

Linux の操作と構成作業では、デュアル ネットワーク カードのバインディングがよく使用されます。...

Bash スクリプトでの配列メソッドの作成と使用の概要

Bashで配列を定義するbash スクリプトで新しい配列を作成する方法は 2 つあります。 1 つ目...

MySQLの左結合と内部結合について簡単に説明します

序文最近、X 省のコールド チェーン トレーサビリティ システムの開発で忙しくしています。毎日午後 ...

Linuxにソフトウェアをインストールするいくつかの方法の詳細な説明

1. RPM パッケージのインストール手順: 1. soft.version.rpm などの対応する...

MySQL 5.7.10 winx64 のインストールと設定方法のグラフィック チュートリアル (win10)

MySQL は比較的使いやすいリレーショナル データベースです。今日は、win10 システムを再イ...

Vue-cliに基づくコードセットは複数のプロジェクトをサポートします

目次アプリケーションシナリオアイデアプロジェクト構造全体的なプロジェクト構造webpack パッケー...