Хорошо, я пытался понять это, но не смог прийти к выводу. Я хотел бы получить некоторые результаты от y'all, советы по проведению еще нескольких тестов или другие ресурсы для чтения.MySQL Оптимизация для 1-to-* отношений
Ситуация проста. Существует основная таблица изображений. Возможно, из cat_pictures
. Существует вторичная таблица cat_pictures_comments
. Некоторые умные разработчики убедились, что cat_pictures
имеет первичный ключ с автоматическим приращением ID_PICTURE
, а комментарии хранятся с индексом ID_PICTURE
.
Наше приложение имеет страницу, которая хочет показать все фотографии со всеми комментариями к фотографиям.
ли мы
Просто
INNER JOIN
cat_pictures
сcat_pictures_comments
(и убедиться, что все правильно упорядочены)Получить все
cat_pictures
, затем петлю через каждый и получитьcat_pictures_comments
для каждой картины
A: Что, если приложение является PHP?
B: Что, если cat_pictures
имел идентификатор записи, путь к файлу изображения и еще 20 285 полей для генома кошки? И cat_pictures
были также INNER JOIN
'ed с каждым психиатром владельца кошки (соотношение 1-1). (В принципе, есть больше данных, прикрепленных к первичной таблице, по сравнению с нашей небольшой таблицей комментариев.)
Спасибо всем.
Вопрос неясен. Ответ - это соединение. Подумайте о том, чтобы предоставить таблицу приложений для данных 1-1, но только если можно продемонстрировать, что есть существенное преимущество в производительности. Если есть сомнения, проверьте. – Strawberry
Извините.Это то, что я говорю, я не уверен, как измерить преимущества использования PHP, чтобы получать комментарии по каждому снимку или использовать запрос для его получения. У меня создается впечатление, что PHP * может быть лучше, поскольку память для хранения и возврата дублированных данных 'cat_pictures' может значительно перевесить небольшой размер каждого комментария, прикрепленного к изображению. – Liandri
Хотя на практике это предположение невероятно маловероятно. Как правило, чем меньше «круглых поездок» в БД, тем лучше - с «1» является оптимальным. – Strawberry