Есть таблицы
posts
и
comments
. Задача — получить текст поста и комментариев к нему по идентификатору поста. Очевидное решение — использовать LEFT JOIN примерно таким образом:
SELECT p.`content` AS postContent,
c.`content` AS commentContent
FROM `posts` AS p
JOIN `comments` AS c
ON p.`id` = c.`post`
WHERE p.`id` = 1
Кажется, что это во всех смыслах хорошее решение — мы используем всего один запрос к базе данных и получаем всю нужную нам информацию. Тем не менее, есть ощущение, что это решение не самое лучшее — ведь, если к посту будет написано большое количество комментариев, текст поста (очевидно, одинаковый для каждого комментария) будет многократно продублирован, а ответ базы данных будет сильно избыточным:
postContent | commentContent
------------------------------
Текст поста 1 | Комментарий 1
Текст поста 1 | Комментарий 2
Текст поста 1 | Комментарий 3
Текст поста 1 | ...
Собственно, вопрос такой: является ли использование такого запроса оптимальным или, наоборот, неоптимальным решением с точки зрения нагрузки на базу данных, потребления памяти и подобных моментов? Или лучше написать два отдельных запроса для получения текста поста и текста комментариев к нему?
Вопрос кажется очень банальным, но, к сожалению, сходу найти ответ на него не получилось. Заранее спасибо за помощь.