インデックスはソートされたデータ構造です。 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 定義とマッチングルールの詳細な説明
ウェブサイトのフロントエンド開発で発生するセキュリティ問題は、クライアントブラウザで実行されるコード...
出典: http://www.ruoyi.vip/ 'vue' から Vue をイン...
1. ウィンドウ -> 設定を選択してEclipseの設定パネルを開きます。 2. 「設定」ウ...
この記事では、ネイティブ JS で実装された複合モーションを紹介します。複合モーションとは、異なる属...
目次ネイティブJavaScriptとはA. 新しいブラウザでnullオブジェクトをチェックするコンス...
目次1. はじめに2. まずLinux環境を紹介しましょう3. TIME_WAIT状態遷移図4. 継...
目次1. 基本概念酸3.自動コミット4. トランザクション分離レベル5. 同時実行の一貫性の問題6....
VMware仮想マシンでのCentos7ブリッジネットワーク構成の完全な手順は参考用です。具体的な内...
1. Dockerをインストールします。参考URL: Docker 入門インストールチュートリアル ...
NFS とは何ですか?ネットワークファイルシステムネットワーク上でファイルを保存および整理するための...
Ubuntu では、ショートカット キーでタッチパッドをオフにできない状況によく遭遇します。この問題...
1. 背景サーバーの開発プロセスでは、新しいコードや構成をロードするためにサービスを再起動することが...
今日は、Linux ホスト上で 4 つの MySQL データベースを起動する方法について説明します。...
序文アプリケーションを Docker コンテナとしてサーバーにデプロイする場合、通常はネットワークと...
目次1. 基本的な例2. 計算プロパティキャッシュとメソッド3. 計算プロパティセッター序文:通常、...