SQL

Обязательно ли делать первичный ключ (id колонку) в таблице mysql, если каждое значение и так будет уникальным?

Вопрос детский, но все же хотел бы узнать ответ, а то у меня много пробелов в в знаниях
Нет делать не обязательно но рекомендуется для того чтобы сам движок мускуля мог нормально работать с этой таблицей например искать записи и т д, а твои уникальные значения он не понимает потосучто они не помечаны как primary key
Александр Лашкин
Александр Лашкин
59 848
Лучший ответ
С точки зрения эффективности работы базы - нужно.
Если значения уникальны, ты можешь использовать из в качестве первичного ключа. Но если в дальнейшем понадобится что-то изменить, это может вызвать проблемы. Так что отдельная колонка для первичного ключа, никак не связанного с основным содержимым записей - это наиболее универсальный способ.

Но если ты не создашь первичный ключ, он всё равно будет создан - неявно. Так что обратиться к нему ты не сможешь. Потому лучше всегда создавать явный первичный ключ.
Это зависит от назначения таблицы и объема данных, которые планируется в ней содержать. Без первичного ключа не будет производиться индексация данных - будут медленнее производиться выборки данных, но ускорится вставка новых данных. К тому же, не будет избыточности данных.

И если у тебя в таблице хранится список категорий, в котором 5-10 записей, то индексация никакого прироста не принесет.

Например, для таблиц с логами индексация может даже навредить, так как скоростью выборки из логов зачастую можно пожертвовать, а вот скоростью записи - нельзя. И под таблицу с несколькими десятками миллионов записей может быстро исчерпаться свободное место на жестком диске, так как помимо самих логов приличный объем занимают индексы.
***вова Хан***
***вова Хан***
96 019
лучше сделай