Какой самый простой способ добавить кеш страницам (php)

A
На сайте с 12.10.2011
Offline
212
1512

Всем привет,

Я не гуру программирования, тем не менее у меня рукописная CMS, лет 10 сохраняются данные о погоде, БД огромная.. и стала притормаживать. Какое-то время назад сделал дополнительные индексы, но сейчас снова  тормозит..

Хочу попробовать сделать кеш на некоторые страницы. Нет опыта в этом вообще. Не подскажите самый простой и не затратный по времени способ? Но работающий )

На сервере: PHP Version 5.3.29

A
На сайте с 12.10.2011
Offline
212
#1
Данные можно обновлять где-нибудь раз в два часа. И правильно ли я понимаю, что первое отображение все равно будет с задержкой?
M3
На сайте с 09.02.2022
Offline
88
#2
alexverem :
БД огромная..

а какой размер базы?
может пора кластеризацию подключать?
а так стоит смотреть в сторону Redis, например

L
На сайте с 14.12.2008
Offline
129
#3
alexverem :

Всем привет,

Я не гуру программирования, тем не менее у меня рукописная CMS, лет 10 сохраняются данные о погоде, БД огромная.. и стала притормаживать. Какое-то время назад сделал дополнительные индексы, но сейчас снова  тормозит..

Хочу попробовать сделать кеш на некоторые страницы. Нет опыта в этом вообще. Не подскажите самый простой и не затратный по времени способ? Но работающий )

На сервере: PHP Version 5.3.29

1) проблема не в БД, а в ОП
2) переходи на php 8.*
2) настройки кеш зависят от веб-сервера

A
На сайте с 12.10.2011
Offline
212
#4
master32 #:

а какой размер базы?
может пора кластеризацию подключать?
а так стоит смотреть в сторону Redis, например

Ну.. возможно по моим полулюбительским критериям огромная )) так она 2ГБ (дамп). А где хранится погода - там  40111809 записей и таблица 5ГБ если смотреть в phpmyadmin в Структуре.

Или это ни о чем при грамотных индексах и тп?

И еще вопрос, страницы тормозят не только там, где происходит выборка из большой таблицы, но и из других. Может ли одна большая таблица  сказываться на работу с другими таблицами (если в это же время параллельно делаются запросы к большой таблице) ? то есть насколько все взаимосвязано..

M3
На сайте с 09.02.2022
Offline
88
#5
alexverem #:
Или это ни о чем при грамотных индексах и тп?

да вот это надо проработать
может тормозить весь сервер, поэтому при выборках из соседних таблиц тормоза
база мизерная, такую можно в текстовом файле хранить и она не должна тормозить)

A
На сайте с 12.10.2011
Offline
212
#6
master32 #:

да вот это надо проработать
может тормозить весь сервер, поэтому при выборках из соседних таблиц тормоза
база мизерная, такую можно в текстовом файле хранить и она не должна тормозить)

а можно как-то сохранить схему и показать кому нибудь? за оплату может.. возможно что посоветуют.. я боюсь что уже сделал все что мог )

I1
На сайте с 31.07.2023
Offline
33
#7
alexverem #:
самый простой и не затратный по времени способ? 

memcache/redis + https://lastmodified.ru/

I1
На сайте с 31.07.2023
Offline
33
#8
alexverem :
лет 10 сохраняются данные о погоде

простите,  а на кой чёрт вообще нужны эти данные и кому?)

S3
На сайте с 29.03.2012
Offline
348
#9

Я бы все-таки сначала попытался выяснить поточнее проблему. 

Для начала бы развернул базу локально, чтобы исключить все проблемы с передачей данных по http.

Подключил  бы профайлер запросов, что бы сравнить время исполнения запросов. Нашел бы самые долгие.

Дальше бы EXPLAINом бы поразбирал сами запросы. 

Посмотрел обьемы даннных, которые эти запросы собирают. Возможно, с ростом базы в них стало попадать слишком много. 
Индексы хорошее дело, но с ними нужно аккуратно. Стоит понимать, как он вообще работает и из чего состоит. Если он составной, убедиться что первичный индекс идет по нужному полю. 
Ну и конечно пройтись по джойнам. Неправильное обьединение даже самых безобидных таблиц может на выходе дать декартово произведение. 
Это если очень кратко. 

Ivanov123 #:

простите,  а на кой чёрт вообще нужны эти данные и кому?)

Это очень ценные данные. Иметь такую статистику  - здорово.

Cpt.Smollet
На сайте с 03.08.2024
Offline
9
#10
alexverem :
лет 10 сохраняются данные о погоде, БД огромная..
Хочу попробовать сделать кеш на некоторые страницы. Нет опыта в этом вообще. Не подскажите самый простой и не затратный по времени способ? Но работающий )

Для начала, хорошо бы провести профайлинг.
Так можно будет определиться, где возникают задержки и уже определившись - приступать к работе по  оптимизации.

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий