powered by simpleCommunicator - 2.0.59     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Уникальные индексы
19 сообщений из 19, страница 1 из 1
Уникальные индексы
    #38917767
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. В чем преимущество уникальных индексов по сравнению с обычными? Они имеют другую структуру и работают быстрее?
2. В чем принципиальная разница между созданием уникального индекса и созданием обычного индекса и уникального ключа на это же поле?
...
Рейтинг: 0 / 0
Уникальные индексы
    #38917775
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
1. Ни в чем
2. Будет один индекс вместо двух

Ключ автоматически создаёт индекс. Вручную создавать уникальные индексы никогда не надо.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Уникальные индексы
    #38917786
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloper,

1. Уникальный индекс всегда имеет наилучшую селективность, в остальном ничем.
2. Если есть уникальный ключ, то ещё один индекс создавать не надо, исключением может быть только наличие навигации (сортировки) по индексу в обоих направлениях.
...
Рейтинг: 0 / 0
Уникальные индексы
    #38917812
Ivan_Pisarevsky
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Interloperсозданием обычного индекса и уникального ключа на это же поле?масло масляное.

впрочем Денис уже написал.
...
Рейтинг: 0 / 0
Уникальные индексы
    #38917870
Kirill Razuvaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovВручную создавать уникальные индексы никогда не надо.
Можно поинтересоваться мотивом?
...
Рейтинг: 0 / 0
Уникальные индексы
    #38917942
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirill RazuvaevМожно поинтересоваться мотивом?
Да блин. Имелось ввиду при наличии ключа.
...
Рейтинг: 0 / 0
Уникальные индексы
    #38918011
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockИмелось ввиду при наличии ключа.
Имелось ввиду вообще. Либо тебе нужно гарантировать уникальность и тогда надо создавать
ключ, либо уникальность гарантировать не надо и тогда сойдёт любой индекс.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Уникальные индексы
    #38918176
Kirill Razuvaev
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovИмелось ввиду вообще. Либо тебе нужно гарантировать уникальность и тогда надо создавать ключ, либо уникальность гарантировать не надо и тогда сойдёт любой индекс.А как же промежуточные таблицы из двух полей для связей M:M, где в PK входят оба поля (F0,F1), но нужен также и обратный уникальный индекс (F1,F0) для эффективного поиска в обратную сторону? Или без разницы, будет такой индекс уникальным?
...
Рейтинг: 0 / 0
Уникальные индексы
    #38918182
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для обратного поиска такой индекс не нужен. И таки да, быть уникальным ему ни к чему.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Уникальные индексы
    #38918192
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovДля обратного поиска такой индекс не нужен
Да ладно. Может в основном да, но в общем случае?
Пусть есть ПК (FIELD_M,FIELD_N)
Что, для запросов типа
Код: sql
1.
WHERE FIELD_N=:X AND FIELD_M BETWEEN :Y AND :Z


или
Код: sql
1.
WHERE FIELD_N=:X AND FIELD_M > :Y


не нужен обратный индекс?
Я не уверен. Но кажется нужен, во всяком случае в FB.
...
Рейтинг: 0 / 0
Уникальные индексы
    #38918218
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRockдля запросов типа
Во-первых, это сферические запросы в вакууме.
Во-вторых, по FIELD_N уже есть индекс от внешнего ключа, его может быть достаточно.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Уникальные индексы
    #38918227
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

обратный индекс может потребоваться при DESC сортировке (или при вычислении MAX), для всех других случаев достаточно ASC индекса
...
Рейтинг: 0 / 0
Уникальные индексы
    #38918273
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Денис,

Я имел ввиду не это, а индекс по полям(N,M) при ПК (M,N). Не совсем корректно выразился, не обратный, а с обратным порядком полей.
...
Рейтинг: 0 / 0
Уникальные индексы
    #38918274
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovYuRockдля запросов типа
Во-первых, это сферические запросы в вакууме.
Во-вторых, по FIELD_N уже есть индекс от внешнего ключа, его может быть достаточно.
чтто за внешний ключ? Кто его создал? Я говорил только про ПК.
...
Рейтинг: 0 / 0
Уникальные индексы
    #38918369
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Dimitry SibiryakovYuRockИмелось ввиду при наличии ключа.
Имелось ввиду вообще. Либо тебе нужно гарантировать уникальность и тогда надо создавать
ключ, либо уникальность гарантировать не надо и тогда сойдёт любой индекс.

А чем плох вариант создания уникального индекса? Он не гарантирует уникальность?
...
Рейтинг: 0 / 0
Уникальные индексы
    #38918450
Фотография Симонов Денис
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
YuRock,

препочитаю не создавать ПК из двух полей. Лучше пусть ПК будет искуственным, ан если требуется то на те два поля наложу уникальный ключ. В общем случае надо думать когда создаёшь композитный индекс как он будет использоваться. Сомневаюсь что потребуется такое

Код: sql
1.
WHERE FIELD_N=:X AND FIELD_M > :Y



и одновременно такое

Код: sql
1.
WHERE FIELD_N>:X AND FIELD_M = :Y
...
Рейтинг: 0 / 0
Уникальные индексы
    #38918480
Фотография kdv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Kirill RazuvaevИли без разницы, будет такой индекс уникальным?

ну чего вы, честное слово.
Уникальный индекс от неуникального отличается только тем, что уникальный при вставке нового ключа проверяет, есть такой уже или нет. Если есть - говорит что нарушение уникальности. Дальше, после того как ключ вставлен, никакой разницы.

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

Если индекс по столбцу уже построен, нафига еще один индекс на этот же столбец?
...
Рейтинг: 0 / 0
Уникальные индексы
    #38918490
Interloper
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
kdvKirill RazuvaevИли без разницы, будет такой индекс уникальным?
Если есть данные, то уникальный индекс по столбцу можно построить только тогда, когда нет одинаковых значений в разных столбцах .
Может в разных строках?
...
Рейтинг: 0 / 0
Уникальные индексы
    #38919263
YuRock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Симонов Дениспрепочитаю не создавать... Лучше пусть... Сомневаюсь что потребуется такое...
Ну при чем тут предпочтения/допущения. Речь же об общем случае шла. Мне такое одновременно тоже никогда не надо было, но мало ли процессов жизнедеятельности.
...
Рейтинг: 0 / 0
19 сообщений из 19, страница 1 из 1
Форумы / Firebird, InterBase [игнор отключен] [закрыт для гостей] / Уникальные индексы
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]