Общие > Базы данных

Таблица-связка

(1/1)

YA:
Есть такая таблица-связка:

CREATE TABLE `table` (`1` SMALLINT(5) UNSIGNED NOT NULL, `2` SMALLINT(4) UNSIGNED NOT NULL, PRIMARY KEY (`1`, `2`));

Функция у нее только одна: она разрешает связь "многие-ко-многим". Оба поля содержат первичные ключи двух других таблиц.

Вопрос такой: есть ли смысл добавить в эту таблицу-связку поле
"`0` MEDIUMINT(7) UNSIGNED AUTO_INCREMENT", сделать его первичным ключем и включить в индекс все три поля? Может ли это ускорить работу или наоборот? Подразумевается большое количество селектов, использующих связанные таблицы.

fidget:

--- Цитировать ---Может ли это ускорить работу или наоборот?
--- Конец цитаты ---


Все зависит от того, какие у тебя будут select-ы. В этой таблице у тебя оба поля проиндексированны (первичным ключом являются) и введение еще одного поля только ради того, что бы еще  и по нему проиндексировать это будет громоздко.
Другое дело, если тебе введение этого поля поможет упростить select-ы.
А насчет скорости и использования индексов, то используй
EXPLAIN SELECT для того, что бы посмотреть какие индексы используются и тестовый select-ы, что бы сравнить скорость выборки.

YA:
Благодарю, это и хотел услышать.
Просто где-то уведел настоятельную рекомендацию делать ТАК ВСЕГДА и усомнился (в своем здоровье :) )

Навигация

[0] Главная страница сообщений

Sitemap 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 
Перейти к полной версии