Выбор столбцов для индекса (2)
Не индексируются часто обновляемые столбцы, так как команды обновления ведут к потере времени на обновление индекса.
Не индексируются столбцы, часто используемые как
аргументы выражений или функций – как правило,
это не позволяет использовать индекс.
Хеширование
Ассоциативный доступ к хранимым записям предполагает определение местоположения записи по значениям содержащихся в ней данных.
В этом случае используются более сложные механизмы размещения.
Для этой цели используются различные методы отображения значения ключа в адрес, например методы хеширования (перемешивания).
Хеширование
Хеширование – специально подобранная хеш-функ-
ция преобразует значение ключа записи в адрес блока (страницы) памяти, в котором эта запись будет размещаться.
Под ключом записи здесь подразумевается поле (набор полей), позволяющее классифицировать запись.
Например, для таблицы СОТРУДНИКИ роль ключа записи может играть поле Номер паспорта или набор полей (Фамилия, Имя, Дата рождения).
Хеш-функция
Для определения адреса записи в области хранения к значению ключевого поля этой записи применяется так называемая хеш-функция h(K).
Она преобразует значение ключа К в адрес участка памяти (свертка ключа).
Новая запись будет размещаться по тому адресу, который выдаст хеш-функция для ключа этой записи.
При поиске записи по значению ключа К хеш-функция выдаст адрес, указывающий на начало участка памяти, в котором надо искать эту запись.
Основные свойства хеш-функции (1)
Выдавать такие значения адресов, чтобы обеспечить
равномерное распределение записей в памяти. Для близких значений ключа значения адресов должны сильно отличаться, чтобы избегать перекосов в размещении данных.
Для разных значений ключа выдавать разные адреса.