Я прочитал сегодня это сообщение в блоге http://www.andrewrollins.com/2009/06/21/mysql-join-performance/ о совместном выступлении. Как видно, объединение может стоить производительности в некотором роде.Mysql join vs имеет дубликат
Давайте рассмотрим пример из двух таблиц: user_profile и user_gallery.
user_profile
user_id | avatar | nickname | ...
user_gallery
image_id | user_id | image | caption | is_avatar
На странице просмотрите пользователей, пользователи указаны с их псевдонимом и изображением аватара.
я могу получить изображение в списке пользователей с присоединиться
INNER JOIN user_gallery ON user_gallery.user_id=user_profile.user_id WHERE user_gallery.is_avatar=1
или я могу положить аватар поля контур изображения. В этом случае мне не нужно использовать поле is_avatar, и у меня есть все данные, необходимые для отображения пользователей в таблице user_profile. Поэтому никакого дополнительного соединения не требуется. Но поскольку изображение аватара является частью галереи пользователей, это будет означать значение avatar также в таблице user_gallery, поэтому одно дублирующее значение.
Стоит ли строго следовать правилам нормализации, которые могут стоить производительности, имея в виду этот точный случай? Что было бы лучше в этом случае?
Я не понимаю, о необходимости присоединения к 'user_profile', если вы не нуждаясь столбцами из него , В противном случае я не вижу, как работает поле user_profile.avatar, когда может быть несколько изображений для данного профиля пользователя ... –
Один пользователь может отображать только 1 аватар и изображение аватара на странице списка пользователей (просматривать пользователей). В режиме просмотра пользователей это список пользователей с их псевдонимом, возрастом и аватаром. На странице просмотра пользователей аватар - это ссылка на профиль пользователя. Я не уверен, что вы имеете в виду, не требуя от него столбцов. Мне нужно просматривать данные страниц пользователей о прозвище, возрасте и аватаре. Когда вы находитесь на странице профиля пользователя, вы также можете увидеть галерею пользователей. Изображение аватара автоматически становится частью галереи пользователя, когда пользователь регистрируется. – JohnyFree