Производительность и оптимизация MySQL с несколькими запросами на странице профиля, их можно уменьшить? - PullRequest
1 голос
/ 25 сентября 2011

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

Страница профиля содержит:

  • информация о пользователе, аватаре, хобби и т. Д.
  • их видео и фото
  • их друзья
  • их закладки
  • видео, которые они смотрели

В настоящий момент я выполняю 14 разных запросов при каждой загрузке страницы профиля, некоторые из них перечислены ниже:

  • проверить, разрешено ли зрителю просматривать страницу профиля
  • получить информацию о профиле
  • получить профильные видео
  • получить фото профиля
  • получить список друзей
  • получить список закладок
  • получить видео, которые они смотрели

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

Может ли MySQL справиться с такой большой нагрузкой?

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

спасибо:)

Ответы [ 2 ]

0 голосов
/ 25 сентября 2011

Пока это короткие запросы, все в порядке.Если вы что-то делаете для оптимизации скорости, это может дать вам в лучшем случае дополнительные миллисекунды.Если это все еще беспокоит, вы можете заняться кэшированием.

Найти также memcache.

0 голосов
/ 25 сентября 2011

Если это когда-нибудь станет проблемой производительности, вот пара простых вещей, которые помогут:

  • Кэширование запросов на сервере БД
  • Кэширование результатовзапросы в веб-приложении
  • Кэшируйте всю страницу профиля или ее части, которые изменяются нечасто.

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

Но самое главное: что сказал @ Джейсон.Скорее всего, если производительность действительно становится проблемой (потому что вы превращаетесь в следующий твиттер или что-то в этом роде), дешевле будет бросить аппаратное обеспечение на эту проблему, чем переписывать.

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