インデックスはソートされたデータ構造です。 where 条件での検索や order by 条件での並べ替えに使用できるフィールドは、データの物理アドレスをインデックス化することで、すばやく検索できます。 インデックス分類 1. 通常のインデックス: 制約なし。主にクエリの効率を向上させるために使用されます。 2. ユニークインデックス(UNIQUE):通常のインデックスに基づいてデータの一意性制約を追加します。複数のインデックスが存在する場合があります。 3. 主キーインデックス:主キーインデックスは、ユニークインデックスに基づいて非NULL制約を追加します。つまり、NOT NULL+UNIQUEであり、1つしか存在できません。 4. 全文インデックス (FULLTEXT): MySQL の組み込み全文インデックスは英語のみをサポートします。 一般的には、ES(ElasticSearch)などの専用の全文検索エンジンが使用される。 インデックスを作成 #通常のインデックス ALTER TABLE テーブル名 ADD INDEX インデックス名 (column_list); #ユニークインデックス ALTER TABLE テーブル名 ADD UNIQUE インデックス名 (column_list); #主キーインデックス ALTER TABLE テーブル名 ADD PRIMARY KEY インデックス名 (column_list); #全文インデックス(文字列データ型) ALTER TABLE テーブル名 ADD フルテキスト インデックス名 (column_list); #インデックスを表示 学生からのインデックスを表示 \G ここでは、セミコロン終端文字の代わりに \G が使用され、出力データ情報がフォーマットされます。 #インデックスを削除 テーブルを変更してインデックスを削除します ALTER TABLE テーブル名 DROP INDEX インデックス名; 主キーインデックスを削除する ALTER TABLE テーブル名 DROP PRIMARY KEY; インデックス列が 1 列の場合、それは単一のインデックスです。 どのような状況でインデックスを作成できますか? 1. フィールドの値には、idなどの一意性の制約があります。 2. 特にデータテーブルが大きい場合にWHEREクエリ条件として頻繁に使用されるフィールド
3. GROUP BYとORDER BYを頻繁に実行する必要がある列 4. UPDATEとDELETEのWHERE条件列も通常はインデックスを作成する必要がある
5.DISTINCTフィールドにはインデックスを作成する必要がある 6. 複数テーブルのJOIN操作を実行する場合、インデックスを作成するときに次の原則に注意する必要があります。
インデックスを作成する必要がないのはいつですか?
1. WHERE 条件 (GROUP BY および ORDER BY を含む) で使用されないフィールドにはインデックスを作成する必要はありません。 2. テーブルのレコード数が少なすぎる場合 (たとえば、1,000 行未満) は、インデックスを作成する必要はありません。 3. フィールドに大量の重複データがある場合、性別フィールドなどのインデックスを作成する必要はありません。 4. 頻繁に更新されるフィールドには、必ずしもインデックスを作成する必要はありません。データを更新する際には、インデックスも更新する必要があるためです。インデックスが多すぎると、インデックス更新時に負担がかかり、効率に影響します。 どのような状況でインデックスが失敗するのでしょうか? 1. インデックス列を式の計算や関数に使用すると失敗します。 2. WHERE 句で、OR の前の条件列にインデックスが付けられているが、OR の後の条件列にインデックスが付けられていない場合、インデックスは無効になります。 3. あいまいクエリにLIKEを使用する場合、式は%で始まることはできません。 4. インデックス列をNOT NULL制約に設定してみる
上記はMySQLインデックスの基本構文の詳細な内容です。MySQLインデックス構文の詳細については、123WORDPRESS.COMの他の関連記事に注目してください。 以下もご興味があるかもしれません:
|
<<: nginx の default_server 定義とマッチングルールの詳細な説明
vue-cli は stimulsoft.reports.js を使用します (ナニーレベルのチュー...
CSS は div にスクロールを追加し、スクロール バーを非表示にします。具体的なコードは次のとお...
この記事は主に、nginx 高可用性クラスタの実装プロセスを紹介します。この記事のサンプルコードは非...
目次js の1. グローバルガードを登録する2. Vuex 状態管理グローバルキャッシュルート3. ...
SHTMLとASPは似ています。SHTMLという名前のファイルでは、SSIの命令がASPの命令と同じ...
1. コマンドの紹介bzip2 は、ファイルの圧縮と解凍に使用されます。これは、Linux システム...
目的: Linux では、さまざまな理由でサーバー プログラムがダンプされ、ユーザーの使用に影響する...
この記事は主に、Nginx 7 層負荷分散のいくつかのスケジューリング アルゴリズムを紹介します。こ...
序文この記事を始める前に、複数選択の質問をしてみましょう。フロントエンド開発でビルド ツールを使用す...
この記事では、JavaScriptでキャンバスを使用して座標と線を描く具体的なコードを参考までに紹介...
まずはコードを見てみましょう <フォーム id="uploadFileForm2&q...
デザインの分野では、毎年さまざまなデザインのトレンドや流行があります。たとえば、近年のレスポンシブデ...
1. nacosデータベースを再開します。データベース名nacos_configユーザー名とパスワー...
構文の構成: 1 注釈情報2 コマンド --- パラメータ [通常は大文字 | 実際には大文字と小文...
カウントスクリプト #!/bin/sh 引数の数=$# [ $numOfArgs -ne 1 ]の場...