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. まず本文にulタグを追加します <!-- 順序なしリスト --> <ul i...
最も一般的に使用されるレイアウト要素として、DIV は Web 開発において重要な役割を果たします。...
目次1. 時計の新しい使い方1.1. ウォッチの使用構文1.2. 複数の属性値を監視する1.3. 参...
バイオニックデザインといえば、飛行機の発明、ドバイのブルジュ・アル・アラブ、平泳ぎなどを思い浮かべる...
1. ディスクパーティション: 2. fdiskパーティションディスクが2 TB未満の場合はfdis...
現在、プロジェクトの要件により、フォームの送信を制御し、送信前にデータを検証および処理するために j...
残念ながら、社内の IM のテスト中に MYSQL_DATA_TRUNCATED エラーが再び発生し...
次のコードは、MySQL が 1 つのテーブルのデータに基づいて別のテーブルのいくつかのフィールドを...
特殊記号名前付きエンティティ10進数エンコード特殊記号名前付きエンティティ10進数エンコードアルファ...
目次1. 背景2. テーブル作成ステートメントとデータ挿入テーブルを作成するデータの挿入3. ウィン...
ウェブサイトがワイドスクリーンの場合、ブラウザ ウィンドウを左右にドラッグすると、ウェブサイトの幅が...
繰り返し: サイト全体で特定のページ デザイン スタイルを繰り返します。繰り返し要素としては、特定の...
tomcat はオープンソースの Web サーバーです。Tomcat ベースの Web は実行効率...
1. my.iniファイルにskip-grant-tablesを追加し、MySQLサーバーを再起動し...
1.公式サイトからダウンロードして解凍する参考: ダウンロード後、zip 圧縮ファイル (mysql...