1 /テーブルの中で、はどのようにindex I2 on T(col2, col1)
と異なるでしょうか?両方を作成できますか?たとえば、Unique Index
とします。(col1、col2)のインデックスと(col2、col1)のインデックス
Index Skip Scanningは、列の順序が重要であると指示しているようであり、おそらくI1はI2とは異なることを意味します。別のテキストで
は、私がUnique constraints (col1, col2)
と(col2, col1)
の両方が同じindex (col1, col2)
を使用している意味
CREATE TABLE INVOICES
(ID NUMBER(11),
INVOICE_DATE DATE,
CONSTRAINT UN_ID UNIQUE(ID, DATE) USING INDEX(CREATE INDEX I_INVOICES ON INVOICES(ID, INVOICE_DATE)),
CONSTRAINT UN_DATE UNIQUE(DATE, ID) USING INDEX I_INVOICES);
を見てきました。
皆様からの洞察はありますか?私の質問はではない約 私たちは別のものを選ぶと?
ただし、それらが共存するとき2つの異なるインデックス/オブジェクトですか?秩序は問題ですか?なぜ、この例では両方に対して同じインデックスを使用しますか?注文が関係するので、(col1、col2)以外の別のインデックス(col2、col1)を作成する方が良いでしょうか?
2 /私たちはなぜCREATE INDEX
で、CREATE UNIQUE INDEX
ではないのですか?この場合、CREATE UNIQUE INDEX
を使用しますか?複合インデックスのための
に一意のキーを作成している場合は、それがどのように使われるかを知っている必要があります。だから知っておく必要があります:1.どのクエリがあなたのテーブルに対して実行されますか? 2.データのカーディナリティと、より大きい/より小さい基数を持つ列。 'col1'や' col2'の正規/圧縮インデックス、 '(col1、col2)'や '(col2、col1)の' '一意なインデックス 'など、必要なインデックスを決めることができます。 ' – MaxU