У меня есть базовый обучающий сайт, а на панели навигации есть список категорий (в виде дерева, например, основные категории и их дочерние элементы) с примерно 30+ категориями, которые могут увеличиваться, но не намного.
На каждой странице я извлекаю их из базы данных, затем, используя PHP, я делаю древовидные вычисления, чтобы упорядочить их в дерево (родительский, затем дочерний).
Мне кажется, что нет необходимости делать это каждый раз, поэтому я хочу кэшировать это. Но это всего лишь 30 или максимум 100 категорий, так стоит ли их кешировать?
Примечание. Каждый раз, когда категория удаляется, добавляется или обновляется, файл кеша удаляется.
Вы можете использовать memcache (d).
"Но это всего лишь 30 или максимум 100 категорий, так стоит ли их кешировать?" эти числа здесь действительно ничего не значат, все зависит от того, сколько времени они занимают в среднем, как часто данные могут меняться и т.д. стоит выше запрашивать каждый раз.
категории не меняются часто, может быть, раз в месяц или год, а может быть, никогда, но я все же хочу знать, какой способ лучше, потому что я хочу использовать их для более сложных и больших данных
Имейте в виду, что некоторые теоретически более быстрые методы могут стоить очень дорого. Т.е. то, что быстрее с меньшим набором данных, может плохо масштабироваться. (например, крайний случай: быстрая сортировка или сортировка по выбору по набору из 3 элементов) Лучший способ получить хорошее представление о том, что лучше всего в любой конкретной ситуации, - это протестировать с набором данных, который находится в порядке ваших реальных данных .
Я бы сделал последнее, но кэшировал бы только данные json. Таким образом, макет не определяется файлами кеша. Однако для этого требуется больше кода, и его сложнее поддерживать. Так что, если вы, возможно, позже захотите добавить другие данные кеша, создайте для этого систему сейчас.






Попробуйте написать две автономные программы PHP (т.е. программы, которые вы можете выполнить, запустив $ php script_name.php в командной строке), которые выполняют один из этих методов соответственно. Затем вы можете использовать утилиту time (при условии, что вы программируете на macOS или разновидность Linux) следующим образом:
$ time php script_name.php
чтобы узнать, сколько времени требуется для выполнения сценария.
По общему признанию, это довольно грубый способ проведения сравнительного анализа. Если вы серьезно относитесь к этому, взгляните на Профайлер xdebug. Похоже, это то, что вам может понадобиться.
Зачем нужны файлы?
Обычно кеширование на стороне сервера - лучшее решение в этом сценарии. Но также вы можете использовать javascript для кеширования его на сторона клиента, используя локальное хранилище в браузерах. Таким образом, вы можете получить меню прямо из локального хранилища.
Ты можешь использовать localForage Библиотека для хранения данных на стороне клиента
рад помочь :-)
только 100% надежный способ узнать это ....... Проверьте себя.