Forum Webscript.Ru

Общие => Базы данных => Тема начата: YA от 18 Марта 2002, 02:56:44

Название: Таблица-связка
Отправлено: YA от 18 Марта 2002, 02:56:44
Есть такая таблица-связка:

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 от 18 Марта 2002, 11:26:03
Цитировать
Может ли это ускорить работу или наоборот?


Все зависит от того, какие у тебя будут select-ы. В этой таблице у тебя оба поля проиндексированны (первичным ключом являются) и введение еще одного поля только ради того, что бы еще  и по нему проиндексировать это будет громоздко.
Другое дело, если тебе введение этого поля поможет упростить select-ы.
А насчет скорости и использования индексов, то используй
EXPLAIN SELECT для того, что бы посмотреть какие индексы используются и тестовый select-ы, что бы сравнить скорость выборки.
Название: Таблица-связка
Отправлено: YA от 18 Марта 2002, 12:01:55
Благодарю, это и хотел услышать.
Просто где-то уведел настоятельную рекомендацию делать ТАК ВСЕГДА и усомнился (в своем здоровье :) )