[解決済み】Postgresと外部キーおよびプライマリキー上のインデックス
質問
Postgresは自動的に外部キーと主キーにインデックスを付けるのですか? どうすれば分かりますか? テーブル上のすべてのインデックスを返すコマンドはありますか?
どのように解決するのですか?
PostgreSQLは主キーとユニーク制約には自動的にインデックスを作成しますが、外部キー関係の参照側には作成しません。
Pgが暗黙のインデックスを作成するとき、それは
NOTICE
-レベルのメッセージを表示します。
psql
やシステムログに記録されるため、いつ発生したかを確認できます。自動的に作成されたインデックスは
\d
の出力も、テーブルの
は、その ユニークインデックスに関するドキュメント は言う。
PostgreSQLは一意性制約と主キー制約に対して自動的にインデックスを作成し、一意性を強制します。したがって、主キーカラムに対して明示的にインデックスを作成する必要はありません。
のドキュメントと 制約 は言う。
参照先テーブルの行のDELETEや、ある行のUPDATEは、参照先テーブルの行を削除することになるので 参照されるカラムを探すために、参照するテーブルをスキャンする必要があります。 行が古い値と一致する場合、インデックスを作成した方がよい場合があります。 参照するカラム。これは常に必要というわけではなく、また、参照するカラムには インデックスを作成する方法には多くの選択肢があります。 制約が自動的に参照先のインデックスを作成するわけではありません。 カラムがあります。
したがって、外部キーに対するインデックスが必要な場合は、自分で作成する必要があります。
もし、M対NテーブルのPKとして2つのFKのようなプライマリForeign-keyを使用する場合は、PKにインデックスがあり、おそらく追加のインデックスを作成する必要はないことに注意してください。
通常、参照側の外部キーカラムに(またはそれを含めて)インデックスを作成するのは良いアイデアですが、必須ではありません。インデックスを追加するたびに DML 操作が若干遅くなるため、すべての
INSERT
,
UPDATE
または
DELETE
. もしインデックスがほとんど使われないのであれば、持つ意味がないかもしれません。
関連
-
[解決済み】SQLが単一グループのグループ関数でないこと
-
[解決済み] SQLクエリで2つの列から値を引き算する
-
[解決済み] FOREIGN KEY制約で参照されているため、テーブルを切り捨てることができないのですか?
-
[解決済み] nvarchar 値 ... をデータ型 int に変換する際に、変換に失敗しました。
-
[解決済み] SQLテーブルで重複する値を検索する
-
[解決済み] 各グループの最後のレコードを取得する - MySQL
-
[解決済み] SQL Serverで、指定したテーブルを参照しているすべての外部キーを一覧表示するにはどうすればよいですか?
-
[解決済み] SQL Serverでレコードを削除した後、IDシードをリセットする。
-
[解決済み】「INNER JOIN」と「OUTER JOIN」の違いは何ですか?
-
[解決済み】テーブルの外部キーを一覧表示する方法
最新
-
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 実装 サイバーパンク風ボタン
おすすめ
-
[解決済み】CREATE VIEW は、バッチ内の唯一のステートメントでなければなりません。
-
[解決済み] varchar データ型から datetime データ型に変換すると、SQL クエリで範囲外の値が発生する
-
[解決済み】集約関数のないTSQLピボット
-
[解決済み】使用されるSELECT文は列の数が異なる(REDUX!)
-
[解決済み] WHERE x IN (5) vs WHERE x = 5 ...なぜINを使うのか?
-
[解決済み] Oracle(LiveSQL)のSQL [重複]について
-
[解決済み] Presto の JSON_EXTRACT で ' ' 文字を含むキーに問題がある。
-
[解決済み] CLOBとNCLOBの違いは何ですか?
-
[解決済み] オペランド型の衝突:uniqueidentifierはintと互換性がない
-
[解決済み] 外部キーは自動的にインデックスを作成しますか?