インデックスはソートされたデータ構造です。 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 定義とマッチングルールの詳細な説明
VMware のインストールパッケージのインストールダウンロードアドレス: https://www....
<br />何の警告もなく、cnBeta で TOM.COM の Web サイトが再設計...
この記事の例では、画像のドラッグアンドドロップ機能を実現するためのVueの具体的なコードを参考までに...
序文最近mysql /usr/local/mysql/bin/mysql -uroot -pパスワー...
目次1. Springbootプロジェクトを準備する2. 関連する設定を実行する3.パッケージ4.D...
<br />この記事では、XHTMLとXHTMLの基礎知識について簡単に紹介します。 X...
要約するこの記事はこれで終わりです。皆さんのお役に立てれば幸いです。また、123WORDPRESS....
この記事では、MySQL のデータベース テーブルの容量を確認するためのコマンド ステートメントを紹...
MacOS Catalina アップグレード後の VMware ブラック スクリーンに対する完璧なソ...
まず解決策を見てみましょう #------------mysql の root ユーザーに権限を付与...
Docker テクノロジの開発により、マイクロサービスの実装にさらに便利な環境が提供されます。Doc...
目次問題分析なぜカプセル化なのかパッケージの内容は何ですか?テーブルコンポーネントをカプセル化するデ...
序文テキスト検索ツールといえば、Linux で最も便利でよく使われるツールの 1 つである grep...
目次概要プロミスレースメソッド約束の再パッケージ化中止コントローラAxiosプラグインにはキャンセル...
質問1件会社のサーバーはApacheを使用しており、バックエンドはPHP、サーバーはLinux C/...