インデックスはソートされたデータ構造です。 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 定義とマッチングルールの詳細な説明
目次1. Dockerファイル2. pom 構成3. イメージプッシュ4. k8s デプロイメント前...
MySQLはレプリケーションフィルターを動的に変更します今日遭遇した問題についてお話しします。今日は...
目次圧縮ファイルをダウンロードするアドレス: https://dev.mysql.com/downl...
数日前、バスで仕事に行きました。バスのカードリーダーの実際の使用シーンを実際に見て、カードリーダーの...
仮想マシン内の Ubuntu がネットワークに接続できない場合の効果的な解決策: 1. Ubuntu...
1. ダウンロード、例として8.0を取り上げますダウンロードアドレス: https://dev.my...
たくさんのチュートリアルを読みましたが、うまくインストールできませんでした。しばらく試行錯誤した後、...
今日は、ネイティブ JS で実装された画像マーキー効果を紹介します。効果は次のとおりです。 実装され...
<area> タグは主にイメージマップで使用されます。イメージマップにアクティブ領域 (...
フレックスレイアウトを使用すると、9つの正方形のグリッドであれば、図に示すように均等に分割できます。...
<br />どの家庭にもそれぞれの問題があり、改訂はどの IT 企業にとっても問題の 1...
序文以前は、キャッシュを使用してルートを強調表示していました。すべてのルートをトラバースし、クリック...
VNodeとはvue.js には VNode クラスがあり、これを使用してさまざまな種類の vnod...
注意: 他のマシン (IP) は、承認なしではクライアント経由で MySQL データベースに接続でき...
序文起源は質問 1 です: umask が 022 に設定されている場合、作成するファイルのデフォル...