|
![]() |
#1 |
Moderator
|
Цитата:
Топикстартер спрашивает - зачем создавать индексы с фиктивной уникальностью, добавляя поле recid, если в соответствии с информацией из сообщения Проблема с индексами система сама добавляет поле recId в первый попавшийся индекс и делает его уникальным ?Отвечаем: Я тут долго рассуждал что уникальность индекса хороша не только потому что она позволяет избежать дубликатов, но и потому что она упрощает обновление индекса и таблицы. Встроенный механизм добавляет поле recId во первых к первому попавшемуся индексу, во вторых только к одному индексу. Для повышения производительности полезно добавлять уникальное поле во все индексы с малой селективностью, а не только в первый попавшийся. Ну и гипотеза насчет coverage index тоже весьма правдоподобна. Таким образом - ручное добавление recId в конец некоторых индексов вызвано не необходимостью отслеживания уникальности, а возможностью повысить производительность работы сервера БД с данным индексом. |
|
|
За это сообщение автора поблагодарили: mazzy (2), ZVV (2), S.Kuskov (1). |
![]() |
#2 |
Участник
|
Цитата:
Кроме того, если бы это было так, то почему же тогда на всех индексах не включают уникальность добавлением в конец столбца recId ? Мне кажется что если рассматривать упомянутые таблички, в которых удаление записей и обновление ключевых для индексов полей бывает редко, то для них главным критерием построения индексов является не их обновление, а быстрый доступ и сканирование. И там наличие лишнего поля в ключе может ухудшить производительность. |
|
![]() |
#3 |
Участник
|
Цитата:
Сообщение от AndyD
![]() По сравнению с чем?
Если речь идет о том, что включить на существующием индексе уникальность - то наврядли. Ведь в любом случае, при изменении происходит поиск и перестройка страницы с индексными данными и отличаться будет только порядок этого поиска - при наличии уникального/уникальных индексов поиск будет до непосредственно вставки данных в таблицу Действительно. Предлагаю, обсудив преимущества уникальных индексов, найти теперь у них ограничения,не позволяющие использовать их повсеместно. |
|
Теги |
index, indexunique, recid, индекс |
|
Опции темы | Поиск в этой теме |
Опции просмотра | |
|