1/В таблице, как бы index I1 on T(col1, col2)
отличался бы от index I2 on T(col2, col1)
? Можем ли мы создать оба? Возьмем, например, Unique Index
.Указатель на (col1, col2) и индекс на (col2, col1)
Index Skip Scanning, похоже, диктует, что порядок столбцов важен, что означает, что I1 будет отличаться от I2.
В другом тексте, я видел
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);
означает как Unique constraints (col1, col2)
и (col2, col1)
используют один и тот же index (col1, col2)
.
Некоторые идеи от всех? Мой вопрос: не о Когда мы выбираем один над другим?
, но о том, когда они сосуществуют Являются ли они двумя разными показателями/объектами? Означает ли порядок? Почему пример должен использовать тот же самый индекс для обоих? Было бы лучше создать еще один индекс (col2, col1), кроме (col1, col2), потому что порядок имеет значение?
2/На тот же вопрос: Почему мы используем только CREATE INDEX
, а не CREATE UNIQUE INDEX
? В этом случае мы используем CREATE UNIQUE INDEX
?
перед созданием индексов, которые вы должны знать, как он будет использоваться. Поэтому вам нужно знать: 1. какие запросы будут выполняться против вашей таблицы; 2. мощность ваших данных, а в столбце которой будет более высокая/меньшая мощность. и т. д. Затем вы сможете определить, какие индексы вам нужны: нормальный/сжатый индекс на 'col1' или' col2' и ('уникальный индекс' на' (col1, col2) 'или на' (col2, col1) ' – MaxU