Общие > Базы данных
Таблица-связка
(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:
Благодарю, это и хотел услышать.
Просто где-то уведел настоятельную рекомендацию делать ТАК ВСЕГДА и усомнился (в своем здоровье :) )
Навигация
Перейти к полной версии