Однако, по-прежнему нужно как-то выводить еще и хидеры\футеры, хлебные менюшки с корзинами и прочую вроде как повторяющуюся, но, все-таки, динамическую информацию. Пофантазируем, откуда их можно брать, если не из базы.
Ок, про query_cache со стороны мускуля мы забыли. Хотя можно точечно развесить на конкретные запросы при type = ondemand.. Так же как и про кеэширование страницы целиком.
Забыли про кэширование непосредственно результатов запросов в то или иное хранилище, будь то файлик, редис, или мемкеш.
Всякие server side include'ы ?
Инициализировать и хранить в глобальных переменных? ))))
А может, а может... аякс? Даешь, что бы менялось только то, что должно изменится. Главное сео не прибить случайно.
Последний вариант с аяксом, а? Этакий лэзи-лоад на весь движок
Пожалуй, с этим можно только согласиться.
Вот, к примеру: 100, да бог с ним, пусть будет 200 запросов к базе на страницу. Вы писали, что на одном сервере БД крутится 100доменов. Допустим,
(1000 уников в сутки с домена * 10 страниц глубины просмотра с уника * 100доменов * 200 запросов к базе со страницы) / 24 часа / 60 минут / 60 секунд ~~~ 2300qps. Плюс еще боты - пусть столько же. Пусть будет почти придуманные 5kqps. Не ентерпрайз ведь даже или прям хайлоад. Да, круто. Да, от таких задач у большинства предлагаемых vps виртуальные ядра перегреются. Но это не проблема, согласитесь.
Если прям не хотите кэшировать, то упрощайте. Делайте их быстрее, легче, что бы снизить нагрузку. Статикой замените, если хотите )))
Слоулог тут советовать бессмысленно. performance_schema = on и explain для отладки: по самым медленным, по самым частым, по тем, что делают фуллскан, по тем, что вешают долгие блокировки, по тем, что свапятся на диск...