[解決済み] MySQLの2つのシングルカラムインデックスと1つのツーカラムインデックス?
2022-06-22 13:31:05
質問
次のようなことに直面し、何がベストプラクティスなのかがわかりません。
次の表を考えてみましょう(大きくなります)。
id PK|giver_id FK|recipient_id FK|date
私は InnoDB を使用しており、私が理解したところでは、2 つの外部キー列に対して自動的にインデックスが作成されます。しかし、私は、特定の組み合わせに一致する必要がある多くのクエリを実行するつもりです。
SELECT...WHERE giver_id = x AND recipient_id = t
.
このような組み合わせは、それぞれテーブルの中で一意になります。
これらの列の上に2列のインデックスを追加することで何か利点はありますか、それとも理論的には2つの個別のインデックスで十分/同じでしょうか?
どのように解決するのですか?
2つの単一列インデックスがある場合、例ではそのうちの1つだけが使用されます。
2列のインデックスを持つ場合、クエリはより速くなるかもしれません(測定する必要があります)。2列のインデックスは1列のインデックスとして使用することもできますが、最初にリストされた列に対してのみ使用されます。
時には、(A,B)に対するインデックスと(B)に対する別のインデックスを持つことが有用な場合があります。これは、どちらか、もしくは両方の列を使用するクエリを高速化しますが、もちろん、より多くのディスクスペースを使用します。
インデックスを選択する際には、挿入、削除、更新への影響も考慮する必要があります。インデックスが多ければ多いほど、更新は遅くなります。
関連
-
[解決済み] MySQLの複数行を1つのフィールドに連結することはできますか?
-
[解決済み] 複数の列でgroup byを使用する
-
[解決済み] MYSQLでMAX(列の値)、PARTITIONで別の列で行を選択するにはどうすればよいですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み] MySQLでシングルクォート、ダブルクォート、バックスティックを使用する場合
-
[解決済み] MySQLでデータベースやテーブルのインデックスを見るには?
-
[解決済み] MySQL のインデックスはどのように機能するのですか?
-
[解決済み] phpMyAdminで外部キーを設定する?
-
[解決済み】MySQLのDatetimeカラムにデフォルト値を設定する方法とは?
-
[解決済み】マルチインデックスとマルチカラムインデックスの比較
最新
-
nginxです。[emerg] 0.0.0.0:80 への bind() に失敗しました (98: アドレスは既に使用中です)
-
htmlページでギリシャ文字を使うには
-
ピュアhtml+cssでの要素読み込み効果
-
純粋なhtml + cssで五輪を実現するサンプルコード
-
ナビゲーションバー・ドロップダウンメニューのHTML+CSSサンプルコード
-
タイピング効果を実現するピュアhtml+css
-
htmlの選択ボックスのプレースホルダー作成に関する質問
-
html css3 伸縮しない 画像表示効果
-
トップナビゲーションバーメニュー作成用HTML+CSS
-
html+css 実装 サイバーパンク風ボタン
おすすめ
-
MHAの高可用性構成とフェイルオーバー
-
[解決済み] ストアドプロシージャ 'dbo.aspnet_CheckSchemaVersion' が見つかりませんでした。
-
[解決済み] SQLのIN句をパラメータ化する
-
[解決済み] T-SQLでnot equalには!=と<>のどちらを使うべきですか?
-
[解決済み] カラム名の変更 SQL Server 2008
-
[解決済み] 各グループの上位1行を取得
-
[解決済み] SQL Server の CASE ステートメントで OR がサポートされていない。
-
[解決済み] PostgreSQLで一重引用符で囲まれたテキストを挿入する
-
[解決済み] SQL Serverで結果をページ分割する最も良い方法は何ですか?
-
[解決済み] 別のテーブルに一致する項目がない行を選択するにはどうすればよいですか?