Выберите из базы данных и ограничьте с помощью программного обеспечения, или ограничьте на базе данных (mysql) - PullRequest
0 голосов
/ 20 февраля 2012

Я работаю над платформой социальной сети, которая позволяет пользователям комментировать сообщения.

И у меня возникла дилемма: нужно ли мне выбирать все комментарии для каждого сообщения (при загрузке страницы)и затем используйте программное обеспечение, чтобы сократить его, или я должен ограничить результат, используя запрос mysql.

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

Вопрос может звучать такодин MYSQL и предложение LIMIT , которое относится к пределу 1, но в моем случае число результатов может быть от 0 до 3000 (или даже больше).Предел обычно равен 3, но будет другим, если пользователи захотят видеть больше комментариев.

Следует отметить, что в запросе есть предложение ORDER BY id DESC и его SELECT * (это должно быть).В основном, SELECT * FROM table WHERE postid = '$ variable' ORDER BY id DESC.

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

РЕДАКТИРОВАТЬ: TL; DR Основной вопрос заключается в следующем: имеет ли один запрос к базе данных, а затем использовать программное обеспечение, чтобы использовать часть его лучше, чем запрос точногонеобходимые данные (с предельной оговоркой)?

1 Ответ

0 голосов
/ 20 февраля 2012

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

Это позволит вам перенести некоторую обработку в базу данных, поэтому в будущем будет проще разделить и увеличить количество серверов.

Только представьте, если количество комментариев раздувается. просто переместите базу данных на более мощный сервер, и производительность улучшится.

...