Задавайте вопросы, мы ответим
Вы не зашли.
Обязательно ли, чтобы ключ был Primary или достаточно Unique?
Допустим, есть таблица с товарами, в ней суррогатный ключ (id), объявленный как Unique, но не Primary key. Чем мне это грозит?
Неактивен
aliputin написал:
Обязательно ли, чтобы ключ был Primary или достаточно Unique?
Достаточно и не unique, если достаточно
aliputin написал:
Допустим, есть таблица с товарами, в ней суррогатный ключ (id), объявленный как Unique, но не Primary key. Чем мне это грозит?
Unique в отличии от primary может принимать null значения. Вы не сможете использовать атрибут auto_increment.
Неактивен
vasya написал:
не сможете использовать атрибут auto_increment.
Не поверите, но я использую.
Неактивен
Да, действительно нафантазировал
Неактивен
На самом деле, есть небольшие тонкости. С одной стороны, UNIQUE ключ над не-NULL
полем полностью эквивалентент PRIMARY KEY. С другой стороны, уникальных ключей
может быть несколько, а главный — только один. И, наконец, самая важная особенность:
в InnoDB главный ключ является кластерным, т.е. данные хранятся на листьях дерева,
построенного из главного ключа.
Неактивен
paulus написал:
главный ключ является кластерным
А это влияет на быстродействие?
Неактивен
Да. При выборке по unique вы сначала будете получать значение главного, а по нему уже данные.
Неактивен