MySQL のインデックスの種類には、通常のインデックス、一意のインデックス、全文インデックスがあります。インデックスを適切に使用すると、データベースのクエリ効率が大幅に向上します。以下では、3 種類のインデックスについて紹介します。 通常:これは最も基本的なインデックスです。制限はありません。MyIASM のデフォルトの BTREE タイプのインデックスは、ほとんどの場合に使用されるインデックスです。 unique:フィールド情報が繰り返されないことが保証されている場合、重複を許可しない一意のインデックスを示します。例えば、ID番号をインデックスとして使用する場合、ID番号を一意に設定できます。 全文: MyISAM テーブルでのみ使用可能な全文検索用のインデックスを示します。 FULLTEXT は、非常に長いテキストを検索する場合に最適です。短いテキストに使用されます。大容量のデータ テーブルの場合、フルテキスト インデックスの生成は非常に時間がかかり、ディスク領域を大量に消費することに注意してください。 MySQL のインデックス タイプ Normal、Unique、Full Text の違い 普通: ほとんどの場合に使用できる通常のインデックスを示します 個性的: 制約は、データベース テーブル内の各レコードを一意に識別します。つまり、1 つのテーブル内の各レコードは一意にすることはできません (たとえば、ID カードは一意です)。一意 (列の一意性が必要) 制約と主キー (主キー = 一意 + NULL でない列の一意性) 制約は、どちらも列または列セットの一意性を保証します。主キーには自動的に定義された一意制約がありますが、各テーブルには複数の一意制約を設定できますが、主キー制約は 1 つしか設定できません。 MySQL でユニーク制約を作成する 全文: 全文検索を示します。長いテキストを検索する場合に最適です。短いテキストの場合は、インデックスを使用することをお勧めします。ただし、大量のデータを検索する場合は、最初にテーブルの全文インデックスを作成してからデータを書き込むよりも、グローバル インデックスなしでテーブルにデータを入れてから、インデックスの作成を使用して全文インデックスを作成する方がはるかに高速です。 要約すると、インデックスの種類は、インデックス付けされたフィールドのコンテンツ特性によって決まり、通常は「通常」が最も一般的です。 実際の操作では、テーブル内のどのフィールドをインデックスとして選択する必要がありますか? インデックスをより効率的に使用するには、インデックスを作成するときに、どのフィールドに対してインデックスを作成するか、またどのような種類のインデックスを作成するかを考慮する必要があります。主な原則は 7 つあります。 1.一意のインデックスを選択 一意のインデックスの値は一意であり、このインデックスを使用してレコードをより迅速に識別できます。たとえば、学生テーブルの学生 ID は一意のフィールドです。このフィールドに一意のインデックスを作成すると、学生の情報をすぐに特定できます。フルネームを使用すると、名前が重複する可能性があり、検索が遅くなります。 2.並べ替え、グループ化、結合操作を頻繁に必要とするフィールドにインデックスを作成します。 ORDER BY、GROUP BY、DISTINCT、UNION などの操作を頻繁に必要とするフィールドでは、並べ替え操作に多くの時間がかかります。インデックスを作成すると、ソート操作を効果的に回避できます。 3.クエリ条件としてよく使用されるフィールドにインデックスを作成します フィールドがクエリ条件として頻繁に使用される場合、このフィールドのクエリ速度はテーブル全体のクエリ速度に影響します。したがって、このようなフィールドにインデックスを作成すると、テーブル全体のクエリ速度が向上します。 4.インデックスの数を制限する インデックスが多ければ多いほど良いです。各インデックスにはディスク領域が必要です。インデックスの数が増えるほど、必要なディスク領域も増えます。テーブルを変更する場合、インデックスの再構築と更新は面倒です。インデックスの数が増えるほど、テーブルの更新にかかる時間が長くなります。 5.データの少ないインデックスを使用するようにしてください インデックス値が非常に長い場合、クエリ速度に影響します。たとえば、CHAR(100) 型フィールドの全文検索は、CHAR(10) 型フィールドの全文検索よりも確実に時間がかかります。 6.プレフィックスインデックスの使用を試みる インデックス フィールドの値が非常に長い場合は、値のプレフィックスを使用してインデックスを付けることをお勧めします。たとえば、TEXT および BLOG タイプのフィールドの場合、全文検索は時間の無駄になります。フィールドの最初の数文字のみを検索すると、検索速度が向上します。 7.使用されなくなった、またはほとんど使用されないインデックスを削除します。 テーブル内のデータが大量に更新されたり、データの使用方法が変更されたりすると、元のインデックスの一部が不要になる場合があります。データベース管理者は、これらのインデックスを定期的に識別して削除し、更新操作に対するインデックスの影響を軽減する必要があります。 注: インデックスを選択する最終的な目的は、クエリを高速化することです。上記の原則は最も基本的なガイドラインですが、これに固執することはできません。読者は今後の学習や仕事でも実践を続けるべきです。アプリケーションの実際の状況に基づいて分析および判断し、最も適切なインデックス方法を選択します。 たとえば、ショッピングモールの会員カード システムを開発しているとします。このシステムにはメンバー テーブルがあります (一般的なフィールドは次のとおりです)。
次に、この会員番号をPRIMARYを使用して主キーとして使用します。 メンバー名のインデックスを作成する場合は、通常のINDEXを使用します。 会員ID番号のインデックスを作成する場合は、UNIQUE(一意、重複不可)を選択できます。 メンバーメモ情報のインデックスを作成する必要がある場合は、全文検索に FULLTEXT を選択できます。 要約する 以上がこの記事の全内容です。この記事の内容が皆様の勉強や仕事に何らかの参考学習価値をもたらすことを願います。123WORDPRESS.COM をご愛顧いただき、誠にありがとうございます。これについてもっと知りたい場合は、次のリンクをご覧ください。 以下もご興味があるかもしれません:
|
<<: Win10 + Ubuntu 16.04 デュアルシステム 完璧なインストールチュートリアル [詳細]
>>: React Hooksを使用する際のよくある落とし穴
今日は、マスタースレーブ遅延が発生する理由とその対処方法について説明します。しっかり座って出発の準備...
目次1. Vueリスナー配列2. vueが配列の変更を監視できない状況1. Vueリスナー配列Vue...
説明する2 つの日付間の時間間隔を返します。文法DateDiff(間隔、日付1、日付2 [、週の最初...
環境準備: VMware+CentOS、jdk 1. システムディスクのサイズを確認する1. コマン...
目次前の単語同期と非同期前菜プレートを追加マクロタスク マイクロタスク約束しましょうタイマーを追加す...
Linux システムに触れたばかりの初心者として、VMware 仮想マシンに CentOS6.5 シ...
MySQL データベースを使用する際、何らかの理由で長期間 MySQL にログインしていない場合、ま...
目次安定スロットリング要約する安定自動ドアは人を感知してドアを開け、5 秒間のカウントダウンを開始し...
1. Baidu Eslint Ruleプラグインをインストールする npm i -D eslint...
Dockerをインストールするyumパッケージを最新バージョンに更新します: sudo yum up...
目次概要バーチャルドム原理実装プロセスパッチ方式sameVnode関数patchVnode関数upd...
目次1. 概要1.1 Functionコンストラクタを使用して関数を作成する1.2 機能と目的2. ...
MySQL 8 の新機能: MySQL をバージョン 5.x から 8.x に直接アップグレードする...
水平方向では、テーブル ヘッダーの配置を左、中央、右に設定できます。基本的な構文<TH ALI...
最近、ポップアップ広告に取り組んでいました。デフォルト ページには z-index が設定されていな...