この記事では、例を使用して、MySQL 共同インデックスの機能と使用方法を説明します。ご参考までに、詳細は以下の通りです。 結合指数は複合指数とも呼ばれます。複合インデックスの場合: MySQL はインデックス内のフィールドを左から右に使用します。クエリではインデックスの一部のみ、つまり左端の部分のみを使用できます。たとえば、インデックスはキーインデックス (a,b,c) です。a | a,b | a,b,c の 3 つの組み合わせの検索はサポートできますが、b,c の検索はサポートしていません。左端のフィールドが定数参照の場合、インデックスは非常に効果的です。 2 つ以上の列のインデックスは複合インデックスと呼ばれます。 インデックス内の追加の列を使用すると検索の範囲を絞り込むことができますが、2 つの列を持つ 1 つのインデックスを使用することは、2 つの個別のインデックスを使用することとは異なります。複合インデックスの構造は電話帳に似ており、人の名前は姓と名で構成されます。電話帳は、最初に姓のペアで並べ替えられ、次に同じ姓を持つ人の名前のペアで並べ替えられます。電話帳は、姓がわかっていれば非常に便利ですが、名と姓の両方がわかっていればさらに便利ですが、名しかわかっていなければ役に立ちません。 したがって、複合インデックスを作成するときは、列の順序を慎重に考慮する必要があります。複合インデックスは、インデックス内のすべての列または最初の数列のみを検索する場合に便利です。ただし、後続の列のみを検索する場合には役立ちません。 たとえば、名前、年齢、性別の複合インデックスを作成します。 テーブルテストを作成( 整数、 b 整数、 c 整数、 キーa(a,b,c) ); 最適: a=10 かつ b>50 のテストから * を選択 悪い例: a>50 のテストから * を選択します 楽観的: テスト順序から*を選択 悪い例: select * from test order by b 悪い例: select * from test order by c 最適: select * from test where a=10 order by a 最適: select * from test where a=10 order by b 悪い例: select * from test where a=10 order by c 最適: a>10 の順序でテストから * を選択 悪い例: select * from test where a>10 order by b 悪い例: select * from test where a>10 order by c 最適: select * from test where a=10 and b=10 order by a 最適: select * from test where a=10 and b=10 order by b 最適: select * from test where a=10 and b=10 order by c 最適: select * from test where a=10 and b=10 order by a 最適: select * from test where a=10 and b>10 order by b 悪い例: select * from test where a=10 and b>10 order by c インデックス作成の原則 1. インデックスは少ないほど良い 理由: 主にデータを変更するときに、すべてのインデックスを更新する必要があり、書き込み速度が低下します。 2. 最も狭いフィールドはキーの左側に配置されます 3. ファイルの並べ替え、一時テーブル、テーブルスキャンを避けます。 MySQL 関連のコンテンツに興味のある読者は、このサイトの次のトピックをチェックしてください: 「MySQL インデックス操作スキルの概要」、「MySQL 共通関数の概要」、「MySQL ログ操作スキルの概要」、「MySQL トランザクション操作スキルの概要」、「MySQL ストアド プロシージャ スキルの概要」、および「MySQL データベース ロック関連スキルの概要」。 この記事が皆様のMySQLデータベース設計に役立つことを願っています。 以下もご興味があるかもしれません:
|
<<: nginx + fastcgi を使用して画像認識サーバーを実装する
>>: CocosCreatorでゲームコントローラーを使用する方法
この記事では、Vite を使用して Vue 3 デスクトップ プロジェクトを開発する方法について説明...
この記事では、kubernetes1.5.2 から kubernetes1.10 にアップグレードす...
目次1. ヘルプコマンド2. ミラーコマンド3. コンテナコマンド1. ヘルプコマンド1. 現在のD...
本日の投稿では、Web デザインで使用される円形要素の優れた例をいくつか挙げ、美しい丸いボタン、メニ...
目次シナリオ: サーバーデータベースを毎日定期的にバックアップする必要がある1. まずバックアップス...
目次1. 次のコードはwatchの簡単な使用法です2. 即時監視3. ハンドラメソッド4. 深い属性...
この記事では、ログインジャンプを実装するためのVueの具体的なコードを例として紹介します。具体的な内...
目次HTTP ハイジャック、DNS ハイジャック、XSS HTTPハイジャックDNSハイジャックXS...
ネットフィルターNetfilter は、パケット フィルタリング、転送、およびアドレス変換 NAT ...
CSS の一部のプロパティの前には「*」または「_」が付きます。さまざまなブラウザを識別する例えば...
目次Zabbix カスタム監視 nginx ステータス1. ステータスインターフェースを開く2. 監...
目次MySQL の基本的な共通コマンド1. SQL文2. テーブルを作成する3. フィールドのプロパ...
<br />今は情報爆発の時代であるだけでなく、サービス爆発の時代でもあります。それはす...
次の Web デザイン プロジェクトはレスポンシブにする必要があると上司をようやく納得させることがで...
最近、業務上の理由により、Web ページ上のさまざまなネットワーク カメラにアクセスしてデバッグする...