Кэширование сайта, чтобы он не перезагружался - PullRequest
1 голос
/ 06 февраля 2012

У меня возникли некоторые проблемы с моим веб-сайтом, так как он выполняет много SQL-запросов, поэтому он довольно медленный, и при нажатии на один из элементов на странице перезагружается вся страница.

Вотпример: Пример

Когда вы открываете страницу в первый раз, это займет некоторое время.Затем, когда вы нажимаете на опции сортировки, такие как «3Way», «Over / Under», «Asian Handicap» и т. Д., Это снова займет столько же времени, сколько страница перезагрузится вместе с левым и правым столбцами и верхним меню.

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

Мне бы хотелось, чтобы статические элементы (те, которые не были изменены) былине перезагружаться.Автоматически, если это возможно.Если нет, я хотел бы иметь возможность назначать вручную, какие элементы перезагружаются, а какие нет.

Кроме того, когда в приведенном мною URL-адресе вы нажимаете «Over / Under», прокрутите вниз до 1,75.и нажмите маленькую стрелку рядом с надписью «OVER 1.75», страница перезагрузится и отправит вас наверх.Я не хочу, чтобы это пошло вверх, но результаты должны быть отсортированы без перезагрузки страницы.

Если кто-то может предложить некоторую помощь по этим двум вопросам, я был бы признателен, так как я не оченьопытный, и я зашел так далеко, что включил заголовки с истекающим будущим в .htaccess.

Сайт написан на PHP / HTML / CSS, это динамический сайт, получающий все результаты из базы данных SQL объемом 3 ГБ с использованием запросов.

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

Ответы [ 3 ]

2 голосов
/ 06 февраля 2012

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

В качестве альтернативы, вы можете кэшировать результаты SQL в памяти, используя разделяемую память , memcache или redis .

И для достижения наилучших результатов вы можете комбинировать оба метода!

0 голосов
/ 06 февраля 2012

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

Вам нужно не кешировать, а немного AJAX / Javascript.Например, сортировка таблицы по некоторому столбцу является тривиальной задачей для JavaScript.Обратите внимание, что это работает только в том случае, если вся таблица находится на одном экране.В противном случае вы все равно перезагрузите страницу.

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

0 голосов
/ 06 февраля 2012
  1. Первое, что нужно кэшировать, зависит от того, как часто данные вы хотите показывать пользователю.
  2. Отладьте ваш скрипт и проверьте, действительно ли вам нужно слишком много SQL-запросов.Попробуйте уменьшить.
  3. Избегайте группировки по, объединений, упорядочения по предложению.
  4. проверьте свои индексы MySQL.
  5. После выполнения всех действий в MySQL начните выполнять кэширование.
  6. Кэшированные данные с использованием файла, memcache, даже вы можете попробовать mongoDB.
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...