Рейтинговая структура запроса и экономия процесса

0

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

В настоящее время у меня есть рейтинги, которые легки, потому что мой запрос говорит: найти все записи для этого идентификатора, потянуть все рейтинги и усреднить их.

То, что я теперь хочу сделать, - это запрос, который говорит: "Найти ВСЕ записи независимо от ИД, сортировать по ID", усреднять любые существующие "РЕЙТИНГИ" для каждой записи, удерживать рейтинг где-то со связанным идентификатором, а затем обрезать вверх 10 записей.

Эта средняя область в реальном мире будет похожа на "бумагу с царапинами", и я не знаю, как решить эту проблему. Ну, да, но все те оставшиеся результаты, которые выпадают за пределы десяти, которые я хочу, кажутся неудачным процессом?

Я не знаю.. Я помню, как парень говорил о memcache или что-то один раз. Это "царапины", которые я ищу?

Спасибо, Rob

Теги:

1 ответ

1
Лучший ответ

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

Будучи основанным на ram, он не сохраняется, если ваша система перезагружается, поэтому наиболее распространенной практикой является использование ее наряду с реляционной базой данных для хранения данных/структур, которые относительно дороги для производства, это позволяет постоянно воссоздавать их - конечно, кешировать результаты сложные запросы к базе данных, которые вы предлагаете, являются общепринятыми.

Memcached работает как служба на вашем сервере. Чтобы PHP мог получить к нему доступ, вам нужно установить расширение memcache pecl. В коде вы создаете экземпляр класса memcache, а затем используете методы set() и get() для сохранения и загрузки данных под известными ключами. Он автоматически сериализует/десериализовывает объекты, поэтому вы можете установить и получить собственные php/объекты/массивы и т.д.

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

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

  • 1
    Спасибо Бен. Собираюсь отметить, как решено, так как я уверен, что есть, вероятно, миллиард способов, которыми люди подошли бы к этому. Я собираюсь запутаться и прибраться позже, как вы предложили. Спасибо

Ещё вопросы

Сообщество Overcoder
Наверх
Меню