powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Индексы на внешние ключи
3 сообщений из 3, страница 1 из 1
Индексы на внешние ключи
    #35068335
Pane
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
1. Создание индексов на внешние ключи ускоряет выполнение запросов.
2. Создание индексов на поля, содержащие мало значений (3-4 шт), замедляет выполнение запросов.
3. Создание индексов на большое количество полей в таблице замедляет запросы и оперции по модификации данных.

Вопросы по оптимизации:
1. Нужно ли создавать индекс на внешний ключ, который содержит мало значений (3-4 шт)?
2. Нужно ли содавать индексы на поля таблицы, которая разбивает связь "много ко многим", т.е. состоит из 3-х полей: идентификатора и двух внешних ключей? Нужно ли создавать индексы на эти ключи?
3. Если в таблице 30 полей и 8 из них - внешние ключи, правильно ли создавать индексы на все эти ключи (при том, что они содержат много значений)? Будет ли от этого польза в отношении оптимизации?

Спасибо!
...
Рейтинг: 0 / 0
Индексы на внешние ключи
    #35068356
Фотография Сергей Васкецов
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Pane1. Создание индексов на внешние ключи ускоряет выполнение запросов.
2. Создание индексов на поля, содержащие мало значений (3-4 шт), замедляет выполнение запросов.
3. Создание индексов на большое количество полей в таблице замедляет запросы и оперции по модификации данных.
Все это зависит от конкретной ситуации. Вполне может быть, что все это ^^^ не так.
...
Рейтинг: 0 / 0
Индексы на внешние ключи
    #35085159
Ivanov Oleg
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Многое зависит от используемой СУБД

вот что по этому поводу пишет Том Кайт (для Oracle)
Не проиндексированные внешние ключи являются, как правило, наиболее частой причиной возникновения взаимных блокировок, поскольку изменение в главной таблице или удаление записи из главной таблицы приводит в этом случае к блокированию всей подчиненной таблицы...
....
Итак, когда не нужно индексировать внешний ключ? Если выполнены следующие
условия:
• данные из главной таблицы не удаляются;
• значение первичного/уникального ключа главной таблицы не изменяется ни намеренно, ни случайно (используемым инструментальным средством);
• не выполняется соединение от главной таблицы к подчиненной, т.е. столбцы внешнего ключа не обеспечивают важный способ доступа к подчиненной таблице
...
Рейтинг: 0 / 0
3 сообщений из 3, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Индексы на внешние ключи
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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