MySQL: дополнительный столбец id против производительности - PullRequest
1 голос
/ 12 ноября 2011

Таблица1 имеет 3 столбца: id (автоинкремент), номер города (уникальный), описание (varchar (1000)).Идентификатор столбца никогда не используется в запросах.Он просто используется для моего удобства (чтобы увидеть, как растет таблица, проще обратиться к идентификатору, чем к номеру города, хотя идентификатор никогда не используется при выполнении запросов sql).

Вы настоятельно рекомендует удалитьстолбец id для увеличения производительности?

Ответы [ 6 ]

1 голос
/ 12 ноября 2011

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

только мое мнение.

1 голос
/ 12 ноября 2011

Удаление столбца id не увеличит производительность или, по крайней мере, не в разумных пределах. Вы можете сохранить только тот же диск. Кроме того, преимущества, которые может дать ПК, обычно намного лучше, чем экономия места.

0 голосов
/ 13 ноября 2011

В InnoDB PK работает быстрее, чем уникальный индекс, поскольку PK указывает на данные, а Unique указывает на PK и только после этого - на данные.

Итак, удалите id и сделайте номер города первичным ключом.

Стил, это не даст вам большого улучшения производительности.

0 голосов
/ 13 ноября 2011

Предполагая, что в вашей базе данных хранятся только реальные (не выдуманные) города, вы можете легко хранить все города мира, не заботясь об их производительности - набор данных очень маленький.

0 голосов
/ 12 ноября 2011

производительность будет зависеть от ваших запросов. если citynumber действительно уникален (это естественный ключ?), то размещение индекса в этом столбце очень поможет, если вы подключаетесь или фильтруете.

0 голосов
/ 12 ноября 2011

Нет, столбцы идентификаторов почти всегда есть.Если вы когда-нибудь добавите больше таблиц и захотите присоединиться к ним, вам пригодится столбец ID.Это вообще не должно влиять на производительность, а лишь незначительную разницу в потребляемой площади.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...