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

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

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

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


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