Jump to content

Частичный индекс

В базах данных частичный индекс , также известный как фильтрованный индекс, представляет собой индекс , к которому применено некоторое условие, позволяющее включать подмножество строк в таблице .

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

Предположим, у вас есть таблица транзакций, записи в которой начинаются со STATUS = 'A' (активный), а затем могут проходить через другие статусы («P» для ожидания, «W» для «в работе»), прежде чем достичь окончательного статуса. «F», и в этот момент он больше не будет обрабатываться снова.

В PostgreSQL полезный частичный индекс может быть определен как:

create index partial_status on txn_table (status) 
where status in ('A', 'P', 'W');

Этот индекс не будет беспокоить сохранение ни одной из миллионов строк, достигших «окончательного» статуса «F», и позволит запросам, ищущим транзакции, которые все еще «нужны в работе», эффективно выполнять поиск по этому индексу.

Аналогично, частичный индекс можно использовать для индексации только тех строк, в которых столбец не имеет значения NULL, что будет полезно, когда столбец обычно имеет значение NULL.

create index partial_object_update on object_table (updated_on) 
where updated_on is not null;

Этот индекс позволит следующему запросу читать только обновленные кортежи:

select * from object_table 
where updated_on is not null 
order by updated_on;

Не обязательно, чтобы условие было таким же, как критерий индекса; В статье Стоунбрейкера ниже представлен ряд примеров с индексами, подобными следующим:

create index partial_salary on employee(age) 
where salary > 2100;

Поддерживать

[ редактировать ]

В SQL Server этот тип индекса называется фильтрованным индексом . [1]

Частичные индексы поддерживаются в PostgreSQL начиная с версии 7.2, выпущенной в феврале 2002 года. [2]

SQLite поддерживает частичные индексы, начиная с версии 3.8.0. [3]

MongoDB поддерживает частичные индексы, начиная с версии 3.2. [4]

  1. ^ Документация по SQL Server 2008: Рекомендации по проектированию фильтруемого индекса . Microsoft TechNet .
  2. ^ «Документация PostgreSQL: Примечания к выпуску: Версия 7.2» . ПостгреСБЛ . Проверено 9 октября 2009 г. Включение частичных индексов (Мартин ван Остерхаут)
  3. ^ «Частичные индексы» . Проверено 4 февраля 2014 г.
  4. ^ Примечания к выпуску MongoDB V302 .
[ редактировать ]
Arc.Ask3.Ru: конец переведенного документа.
Arc.Ask3.Ru
Номер скриншота №: 61f7830b46af8148f4e08ca0da433c59__1663663920
URL1:https://arc.ask3.ru/arc/aa/61/59/61f7830b46af8148f4e08ca0da433c59.html
Заголовок, (Title) документа по адресу, URL1:
Partial index - Wikipedia
Данный printscreen веб страницы (снимок веб страницы, скриншот веб страницы), визуально-программная копия документа расположенного по адресу URL1 и сохраненная в файл, имеет: квалифицированную, усовершенствованную (подтверждены: метки времени, валидность сертификата), открепленную ЭЦП (приложена к данному файлу), что может быть использовано для подтверждения содержания и факта существования документа в этот момент времени. Права на данный скриншот принадлежат администрации Ask3.ru, использование в качестве доказательства только с письменного разрешения правообладателя скриншота. Администрация Ask3.ru не несет ответственности за информацию размещенную на данном скриншоте. Права на прочие зарегистрированные элементы любого права, изображенные на снимках принадлежат их владельцам. Качество перевода предоставляется как есть. Любые претензии, иски не могут быть предъявлены. Если вы не согласны с любым пунктом перечисленным выше, вы не можете использовать данный сайт и информация размещенную на нем (сайте/странице), немедленно покиньте данный сайт. В случае нарушения любого пункта перечисленного выше, штраф 55! (Пятьдесят пять факториал, Денежную единицу (имеющую самостоятельную стоимость) можете выбрать самостоятельно, выплаичвается товарами в течение 7 дней с момента нарушения.)