本日も引き続き、MySQL関連の知識をご紹介させていただきます。今回の記事の主な内容はMySQLのインデックス関連の内容です。 1. MySQLインデックスの紹介インデックスは、データクエリを高速化するために、MySQL データベースによってテーブル内の 1 つまたは複数の列に追加される「ディレクトリ」です。 MySQL のインデックスは特別なファイルですが、InnoDB タイプのエンジン (MySQL エンジンについては今後の記事で説明します) のテーブルのインデックスはテーブル スペースの不可欠な部分です。 2. MySQLの5種類のインデックスの詳しい説明1. 総合索引共通インデックスは、MySQL データベース内の共通のインデックスです。共通インデックスを追加する列のデータには特別な要件はありません。共通インデックスの役割は、差分クエリを高速化することです。 テーブルexp(id int, name varchar(20),index exp_name(name))を作成します。 または、次のようにインデックスをキーに置き換えます。 テーブル exp (id、int、name varahcr (20)、キー exp_name(name)) を作成します。 上記の SQL コマンドでは、key または index はインデックスの追加を意味し、その後にインデックス名が続き、括弧内の列はインデックスを追加する列です。 データ テーブルを作成した後、テーブルに新しい共通インデックス SQL ステートメントを追加する例を次に示します。 テーブル exp を変更し、インデックス exp_id(id) を追加します。 実行結果は次のとおりです。 以下は、データ テーブルを作成した後に共通インデックスを削除する SQL ステートメントの例です。 テーブルを変更してインデックス exp_name を削除します。 実行結果は次のとおりです。 上記のコマンドでは、exp_name はインデックスを含むフィールドの名前ではなく、インデックスの名前であることに注意してください。テーブル内のインデックスの名前を忘れた場合は、次の SQL コマンドを実行してクエリを実行できます。 exp からインデックスを表示します。 このうち、exp はテーブル名であり、コマンド実行結果は以下のようになります。 上の図からわかるように、通常のインデックスを追加した後、desc を使用してテーブル構造を表示すると、Key 列に MUL が表示されます。これは、列に通常のインデックスが追加されたことを意味します。 (II) ユニークインデックスユニーク インデックスは、インデックスが追加された列のすべての値が 1 回だけ出現することを要求する共通インデックスです。通常、一意のインデックスは ID 番号や学生番号などのフィールドに追加されますが、名前などのフィールドに追加することはできません。 テーブル exp (id int、name varchar(20)、一意のキー (name)) を作成します。 上記コマンドの実行結果は以下のとおりです。 desc コマンドを使用して、一意のインデックスが追加されたフィールドのテーブル構造を照会すると、キー列に UNI が表示され、フィールドに一意のインデックスが追加されたことが示されます。 以下は、一意のインデックスを削除する SQL ステートメントの例です。 alter table exp drop index name; 実行結果は次のとおりです。 (III) 主キーインデックス主キー インデックスは、データベース内のすべてのインデックスの中で最もクエリ速度が速く、各データ テーブルには主キー インデックス列を 1 つだけ持つことができます。主キー インデックスの列には重複データや null 値を含めることはできません。 テーブル exp(id int 、name varchar(20)、主キー (id)) を作成します。テーブル exp を変更して主キー (id) を追加します。 列に主キー インデックスを追加すると、次に示すように、desc でテーブル構造を表示するときに、キー列に PRI が表示されます。 主キー インデックスを削除するには、次のコマンドを実行します。 alter table exp 主キーを削除します。 この SQL ステートメントでは、キーをインデックスに置き換えることはできないことに注意してください。 (IV)総合指数異なる列を含むインデックスを作成する場合は、複合インデックスを作成できます。実際、複合インデックスはビジネス シナリオで頻繁に使用されます。たとえば、データ パケットの内容を記録する場合、データ パケットを識別するための基準として IP とポート番号を使用する必要があります。この場合、IP アドレス列とポート番号列の複合インデックスを作成できます。以下は、複合インデックスの作成、追加、および削除を行う SQL ステートメントの例です。 テーブル exp (ip varchar(15),port int,主キー (ip,port)) を作成します。 alter table exp に主キー(ip、port)を追加します。 alter table exp dorp 主キー; 複合インデックスが作成された後、desc を使用してデータ テーブル構造を表示すると、キー列に複数の PRI が表示されます。これは、PRI を含むこれらの列が複合インデックスの列であることを意味します。以下のように表示されます。 複合インデックスは、複数列の主キー インデックスと同等であることに注意してください。したがって、複合インデックスが追加される列には空のデータを含めることはできず、これらの列のデータは完全に同じにすることはできません。そうでない場合、MySQL データベースはエラーを報告します。以下のように表示されます。 (V) 全文索引全文インデックスは主に、大量のデータにおけるあいまい一致の問題を解決するために使用されます。データベース内のフィールドのデータ量が非常に多い場合、like+ワイルドカード方式を使用して検索すると、速度が非常に遅くなります。この場合、フルテキスト インデックスを使用してあいまいクエリを高速化できます。全文索引の原理は、単語分割技術によってテキスト内のキーワードとその出現頻度を分析し、順番に索引を作成することです。フルテキスト インデックスの使用は、データベースのバージョン、データ テーブル エンジン、さらにはフィールド タイプと密接に関連しています。主な制限は次のとおりです。 テーブル exp (id int、コンテンツ テキスト、filltext キー (コンテンツ)) を作成します。エンジン = MyISAM; alter table exp フルテキスト インデックス (コンテンツ) を追加します。 テーブル exp を変更してインデックスの内容を削除します。 実行結果の一部は次のとおりです。 全文インデックスを作成した後は、あいまい検索に like+wildcard メソッドを使用することはできません。全文インデックスの使用には、次に示すように独自の特定の構文があります。 select * from exp where match(content) against ('a'); match の後の括弧内のフィールドには全文インデックスが含まれ、against の後の括弧内のフィールドにはあいまい一致の対象となるコンテンツが含まれます。 3. MySQLインデックスの使用原則1. インデックス作成は、典型的な「スペースと時間を交換する」戦略です。コンピュータのストレージ スペースを消費しますが、クエリの速度は上がります。 要約するこれで、MySQL データベース インデックスの詳細な説明に関するこの記事は終了です。MySQL インデックスに関するより関連性の高いコンテンツについては、123WORDPRESS.COM の以前の記事を検索するか、以下の関連記事を引き続き参照してください。今後とも 123WORDPRESS.COM をよろしくお願いいたします。 以下もご興味があるかもしれません:
|
>>: Vue+Echart 棒グラフで疫病データ統計を実現
vim の動作モードを設定する (一時的) :set (モード情報) :set nu — 行番号を表...
MySQL ビュー簡単に言えば、MySQL ビューは SELECT コマンドを定義するためのショート...
mysql5.7.17のインストールチュートリアルを参考までに共有します。具体的な内容は次のとおりで...
<TR> タグの属性は、次の表に示すように、テーブル内の各行のプロパティを設定するために...
ウェブサイト構築におけるカラーマッチングは非常に特殊であり、ウェブサイトのテーマ、感情、雰囲気などの...
主にインストール後に my.ini ファイルを確認するために、msi 形式でインストールしました。フ...
HTTPヘッダーとはHTTP は「Hypertext Transfer Protocol」の略です。...
序文MySQLでは、準備、実行、割り当て解除を正式にはPREPARE STATEMENTと呼びます。...
目次1. 現在のシステムにMySQLがインストールされているかどうかを確認する2. インストールされ...
1. まず、nginxの位置情報に関する関連知識を確認しましょう1) 位置マッチング手順: ~ #波...
Mysqlデータベーステーブルの定期的なバックアップの実装0. 背景実際の開発環境では、フロントエン...
目次テーブルの目的例えばテーブル分割戦略すでにオンラインになっている実行中のテーブルはどうすればよい...
目次シンプルなSpringbootプロジェクトを作成する1. pom.xmlでSpring Boot...
1. yumの紹介Yum (フルネームは Yellow dogUpdater、Modified) は...
実際、IE6 が本当にいつ消滅するのか私たちは毎日疑問に思っていますが、2001 年のリリース以来、...