stringtranslate.com

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

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

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

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

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

создать индекс partial_status для txn_table ( status ) , где status in ( 'A' , 'P' , 'W' );           

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

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

создать индекс partial_object_update для object_table ( updated_on ), где updated_on не равен null ;          

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

выберите * из object_table , где updated_on не равен null , упорядочите по updated_on ;           

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

создать индекс partial_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» . PostgreSQL . Проверено 9 октября 2009 г. Включение частичных индексов (Мартин ван Остерхаут)
  3. ^ "Частичные индексы" . Получено 2014-02-04 .
  4. ^ Примечания к выпуску MongoDB V302.

Внешние ссылки