Вопрос по подключению системы кэширования?
Почитайте, optimization.guide и вот вам немного теории:
Кешировать можно:целиком всю страницу (для каждой страницы своя запись в кеше)отдельные части сайта
Кешировать можно в файлах:генераруя готового htmlгенерируя html+php, так работают smarty и прочие шаблонизаторы собирая множество шаблонов в одинв виде бинарного содержимого, сюда и готовый html и готовые значения вычислений и прочеев виде сериализованного массива с чем угодно, от предыдущего пункта отличается только форматом хранения
Кешировать можно в базе:в mysql/postgresql и прочих SQL - будет храниться на диске и горячие данные в памятив mysql/postgresql и прочих SQL в in-memory таблицах - будет храниться в оперативке, но без дополнительных усилий кеш пропадёт при рестарте серверав in-memory базах данных, часто это memcache, redis и прочее - опять таки выключили сервер - данные пропалив in-memory базах данных с сохранением на диск, это Tarantool, memcachedb и прочие если там заявлена такая функциональность
Так же можно:кешировать всё кроме вставок динамикикешировать куски вставляя их в динамику
Это два противоположных подхода которые при особом желании можно смешивать в рамках одного проекта.Обновлять кеш можно:при каждом запросе проверяя что старый кеш устарелпредкеширование - отдельным кроном/демоном/сервисом генерировать кеш раз в N минутпо мере изменения данных сбрасывать кеш и следующий запрос сгенерирует новыйпо мере изменения данных сбрасывать кеш путём генерации сразу нового и замены старого на новый
Кеш можно хранить:на том же сервере что и сайт - нет задержек в сети, но зато ресурсы теже, CPU, диск, оперативная памятьна внешнем сервере - задержки в сети, зато ресурсы отдельно
Можно совмещать разные виды кеширования для разных данных. Можно кешировать только результат работы функций (вычисления, данные), а шаблоны не трогать, можно вместе с шаблонами, но тогда каждое изменение шаблонов повлечёт сброс всего кеша где он участвует.
Если используете CMS/CMF - посмотрите готовые плагины для кеширования. Если у вас не sharing-хостинг с мини-сайтом - озаботтесь профилированием (xhproof) и мониторингом, это поможет понять где и что кешировать.
Так же стоит рассмотреть кэширование байт-кода:OpCacheAPCXCache
Стоит прочитать вот эту статью:Сравнение скорости исполнения кода Drupal для PHP 5.3-5.6 и 7.0. «Битва оптимизаторов кода» apc vs xcache vs opcache https://habrahabr.ru/post/264775/
Так же стоит:увеличить буферы в MySQL (если памяти много)потюнить другие системы, например поставить nginx вместо apache, раздавать статику с другого хостаи конечно же - посмотреть как долго работают SQL запросы и по возможности их облегчитьКеширование в MySQL с использованием HandlerSocket:данные хранятся в MySQL innodb базе, а значит чтение и запись можно делать как по старинке через SQL так и через HandlerSocketможно сделать любое количество колонок, лишь бы это позволял MySQLбыстрая вставкабыстрая выборкабинарный протокол передачи данныхесть несколько библиотек для PHP, как относительно новых так и старыхв Percona Server (форк MySQL) HandlerSocket.so есть в поставке по умолчанию, разве что нужно включитьв MySQL необходимо собрать HandlerSocket самостоятельно и включить в MySQL
Можно почитать вот тут:То, что вы хотели знать о HandlerSocket, но не смогли нагуглить, Сергей Аверин - https://www.youtube.com/watch?v=qHqdhJ9ziik Gentoo Overlay с HandlerSocket, давно не обновлял но вроде работает - https://github.com/mantyr/overlay-gentoo-flowerHS кеш, тоже давно не обновлялся, но как пример сойдёт - https://github.com/mantyr/php-hscachePHP Extension для HandlerSocket, не содержит последних коммитов, но зато, наверное, единственое место где есть точное описание всех методов и входящих параметров, https://github.com/mantyr/php-ext-handlersocketi
scrapbook.cash очень удобно, есть примеры