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ビデオチャットを構築する

推薦する

MySQL で複数のテーブルにビューを作成する方法

MySQLでは、2つ以上のベーステーブルにビューを作成します。学生テーブルとstu_infoテーブル...

VUEのデータプロキシとイベントの詳細な説明

目次Object.defineProperty メソッドのレビューデータブローカーとは何ですか? V...

ElementUI ページネーション コンポーネントの使い方 Vue でのページネーション

ElementUIページングコンポーネントPagination in Vueの使用は参考になります。...

Linux での Jenkins の詳細なインストール手順

目次1. JDKをインストールする2. Jenkinsをインストールする3. Jenkinsの設定を...

Ubuntu環境でxdebugをコンパイルしてインストールする方法

この記事では、Ubuntu 環境で xdebug をコンパイルしてインストールする方法について説明し...

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

LinuxにMySQL 5.7.18をインストールする方法1. MySQLをダウンロードします。公...

JavaScript で 24 以上の配列メソッドを手動で実装する

目次1. トラバーサルクラス1. 各2. 地図3. すべての4. いくつか5. フィルター6. 減ら...

クラウドサーバーパゴダパネルの詳細なインストール手順

目次0x01. パゴダパネルをインストールする0x02. サーバーポートを開く0x03. ブラウザを...

HTML 固定タイトル列、タイトル ヘッダー テーブル固有の実装コード

コードをコピーコードは次のとおりです。 <!DOCTYPE html PUBLIC "...

VMware Workstation 仮想マシンのインストール操作方法

仮想マシンは非常に便利なテストソフトウェアです。ハードウェアに損傷を与えることなく、さまざまなテスト...

nginxリバースプロキシwebSocket設定の詳細な説明

最近、プロジェクトで作業しているときに webSocket プロトコルを使用し、WeChat アプレ...

VMware に CentOS7 をインストールし (静的 IP アドレスを設定)、Docker コンテナ経由で mySql データベースをインストールする (非常に詳細なチュートリアル)

2 年生から、これらのインストールと設定の仕方を尋ねられました。簡単なチュートリアルを作成し、ここ...

MySQLで負荷分散を実装する方法

序文MySQL は、クライアント/サーバー構造に基づく、高速、高性能、マルチスレッドのオープン ソー...

スクロールバーを非表示にしてコンテンツをスクロールする CSS サンプルコード

序文ページの HTML 構造にネストされたボックスが多数含まれている場合、ページに複数の垂直スクロー...

Tomcatがセッションを管理する方法の例

ConcurrentHashMapを学習しましたが、どのように適用すればよいかわかりませんか? To...