Ответы пользователя по тегу MySQL
  • Как спроектировать модуль звездного рейтинга для списка новостей, постов в блог и т.д. по аналогии к лайкам соцсетей?

    ohmytribe
    @ohmytribe
    Измените запрос так, чтобы он всегда работал со списком id (даже в случае одного). Тогда свободного сможете грузить хоть по одиночке, хоть все вместе.

    Далее, можно сделать так, как описывал @igorvar здесь. А именно, доставать параметры статей из кеша, а те статьи, которые в кеше не лежат, грузить из базы данных описанным выше запросом.

    Хотя, если всё, что делает Ваш сайт — это выводит статьи (а значит, их максимум 50 на странице), то можно грузить по одной и класть в кеш. Т.е. делать именно так, как описал @igorvar, без изменения запросов.

    Кстати, запросы на получения данных по одному id очень хорошо кешируются базой данных. Поэтому если грузить статьи одиночными запросами и выделить базе данных столько оперативки, чтобы ей хватало для эффективного кеширования (зависит от количества данных в Вашей базе данных и количества реально используемых данных в определённый момент времени), то база данных сама будет неплохо кешировать результаты запросов.

    В общем, если Вы дадите чуть больше информации, то может оказаться, что у Вас итак всё хорошо.
    Ответ написан
    Комментировать
  • PDO - полный отладочный запрос?

    ohmytribe
    @ohmytribe
    У меня не конкретно ответ на поставленный вопрос, но просто чтобы было понятнее, почему это работает так. PDO использует параметризованные запросы, это значит, что в БД запрос сохраняется именно как
    SELECT *
    FROM `table`
    WHERE `id` = :id
    

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