Есть ли когда-нибудь использовать для индексов БД, как это? - PullRequest
1 голос
/ 09 марта 2011

Если таблица имеет индекс (A,B, C,D), будет ли причина иметь индекс (A,B, Y,Z) или (B,A, C,D)?

Причина, по которой я спрашиваю, состоит в том, что оба из них предоставляют возможностьдля объединения частей индекса - в первом случае префикс A,B, а во втором - суффикс C,D, позволяющий добавлять сложные индексы с меньшими затратами.Тем не менее, я никогда не возражал против этого, и мне интересно, есть ли небольшое преимущество в этих индексах или нет, или я просто что-то пропустил.

1 Ответ

1 голос
/ 09 марта 2011

Есть, конечно, случаи, когда имеет смысл иметь оба индекса (A,B,C,D) и (A,B,Y,Z). Если вы предполагаете, что A & B - это часто используемые столбцы, которые не слишком избирательны, в то время как комбинация C & D или Y & Z более избирательна, но используется реже. Или в случаях, когда A & B являются выборочными, но полезно иметь индекс покрытия для определенных запросов, которые также выбирают либо C & D, либо Y & Z. Или даже случаи, когда оба значения (A,B,C,D) и (A,B,Y,Z) должны быть уникальный. Вы могли бы даже придумать случаи, когда было бы целесообразно иметь третий индекс на (A,B), потому что вы хотите сделать сканирование диапазона индексов для запросов, которые просто указывают A & B как можно более эффективными. Но это, как правило, необычные случаи.

Я не уверен, что следую вашей точке зрения по поводу возможности сопоставлять индексы. Я не знаком ни с одним механизмом базы данных, который позволял бы нескольким индексам использовать одну и ту же структуру индексов, если это то, что вы предлагаете.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...