Базы данных с гибкими индексами?
-
02-10-2019 - |
Вопрос
Форма Wikipedia:http://en.wikipedia.org/wiki/index_(датабаза)
Некоторые базы данных расширяют мощность индексации, позволяя создавать индексы на функции или выражениях. Например, индекс может быть создан на верхнем (last_name), который будет хранить только версии верхнего региона файла fast_name в индексе. Еще один вариант иногда поддерживается, является использование «отфильтрованных» индексов, где записи индекса создаются только для этих записей, которые удовлетворяют некоторому условному выражению. Еще одним аспектом гибкости состоит в том, чтобы разрешить индексацию на пользовательских функциях, а также выражения, образовавшихся из ассортимента встроенных функций.
Каковы эти базы данных, которые поддерживают гибкие индексы, которые могут быть:
- На вычисленном столбце, как: (COL1 + COL2) * 100
- отфильтрованные индексы.
- Индексирование на пользовательских функциях.
И какая известная терминология для этой функции?
Решение
В Oracle они называются функциональными индексами.
Для фильтрации вы можете быть сложно и создать функцию, которая возвращает значение, если фильтр совпадает или нуль, если это не так. Нуль не хранится в индексах BTREE, поэтому индекс существенно отфильтрован. Вы просто должны убедиться, что вы используете одну и ту же функцию в ваших запросах.
Я верю в SQL Server, вы можете создать компьютерный столбец и индекс, который.
Другие советы
SQL Server 2000+ (по крайней мере) поддерживает индексы на основе функциональных столбцов и вычисленных столбцов. Индексы по функциям могут быть реплицированы с использованием индексированных представлений на функции.
Есть условия, как всегда, но в основном вокруг детерминизма (что, вероятно, универсально)
SQL Server 2008+ отфильтровал индексы.
Афаик, нет особого срока. Они просто индексы.
Насколько я знаю, все основные RDBS поддерживают эту функцию. Я лично использовал его на MySQL и PostgreSQL, но я был бы в шоке, если бы не был доступен в MSSQL и Oracle.
К сожалению, я не знаю какой-либо особый термин для этого.