Профиль пользователя заблокирован сроком с 10 апреля 2022 г. и навсегда по причине: систематические нарушения правил сервиса
Ответы пользователя по тегу Кэширование
  • Какой кешер для php лучше? Как выбрать?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Никакой.

    Судя по тому, что ты путаешь opcode cache с data cache, кэш тебе вообще никакой не нужен, а вопрос задан от балды.
    Учись мудрости у природы: когда коту делать нечего, он не кэш ищет, а гигиену наводит. И это очень правильное занятие в твоей ситуации. Куда меньше вреда принесёт
    Ответ написан
  • Как лучше организовать систему кэширования данных?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Сначала отвечу на тот вопрос который ты задал

    Лучшая система кэширования - это отсутствие кэширования.

    А теперь на тот, который ты хотел задать

    Возможно ли реализовать кэширование данных ответов лучше, чем запись результатов в файл и чтение их из этого файла?
    Возможно. Но не нужно.
    Ответ написан
  • Нужно ли делать кеширование запросов и как?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Я думаю здесь подмена понятий. Автор пишет "кэширует ли БД запросы", а имеет в виду "может ли в принципе эта страшная и непонятная громадина которая называется базой данных в принципе хоть когда-нибудь рабтотать быстро?"
    Все, разумеется, кидаются отвечать на первый вопрос.
    А на самом деле надо отвечать на второй. Да, почти всегда БД работает гораздо быстрее чем ты можешь вообразить и ничего кэшировать не нужно. Если вдруг стало работать медленно... впрочем, об этом ниже.

    Нужно ли делать кеширование запросов
    Вот в такой формулировке, взятой с потолка, "а не закэшировать ли мне запросы к базе данных*" - Нет, не нужно.

    и как?
    Очень просто.
    Три простых шага:
    1. Понять, устраивает ли тебя производительность приложения. Если устраивает, то все оставить как есть.
    2. Если не устраивает, освоить профайлинг. Если это слово не упоминается в вопросе про производительность или кэширование, то вопрос можно сразу удалять. потому что он заведомо взят с потолка и не имеет смысла. По сути, профайлинг - это замер скорости выполнения отдельных участков кода для поиска узких мест - т.е. таких участков кода, которые тормозят всю программу. Это можно делать и вручную, и с помощью различных готовых инструментов. Только по результатам профайлинга, который показал конкретную причину тормозов, то самое узкое место (его еще называют bottleneck, "бутылочное горлышко"), можно приступать к оптимизации. Не кэшированию!
    3. Если профайлинг показал, что проблема в конкретном запросе к БД, приступаем к его оптимизации. Чаще всего достаточно добавить индекс или донастроить сервер.
    4. Только если все другие способы не помогли - занимаемся кэшированием. Но перед этим сначала решаем Вторую Важнейшую Проблему Информационных Технологий - инвалидации кэша. Поскольку закэшировать - это ерунда, каждый дурак сможет. Самая главная проблема не в том, как данные положить в кэш, а как и когда их оттуда удалять.
    Ответ написан
    Комментировать
  • Снова про кеширование запросов к БД, как сделать?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Запоминаем второе главное правило программирования: если работает медленно, то не надо ничего кэшировать. Надо делать так, чтобы все работало быстро без всякого кэша.
    Ответ написан
    Комментировать
  • Как посмотреть откуда берет данные MariaDB 10 (из кэша или с диска)?

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Из кэша.
    Вешать мемкеш на микроскопическую таблицу, которая гарантированно вся помещается в памяти, совершенно бессмысленно.
    Ответ написан
    Комментировать
  • Что использовать при кешировании запросов MySQL в PHP

    FanatPHP
    @FanatPHP
    Чебуратор тега РНР
    Вам не нужно никакое кэширование.
    Вам нужно оптимизировать свои запросы.
    «100 договоров и больше» — смешная цифра. По такому количеству любые выборки должны считаться предельно быстро, в сотые доли секунд.
    Даже если тупо выбирать все сто договоров в скрипт и считать руками.

    Кэширование должно применяться только после того, как оптимизированы запросы.
    А сейчас вы пытаетесь поставить турбонаддув на машину, не сняв её с ручника.

    Вообще, задача, конечно, очень невнятно описана.
    Если у вас, к примеру, проблемы с поиском, то можно прикрутить сфинкс.
    В любом случае, надо сначала разобраться с причинами, а потом уже искать решение.
    Ответ написан
    Комментировать