@KOS_MOS

Кэширование данных до запроса в PHP

Проблема: К базе данных происходит около 200 однотипных запросов, но одинаковых нет, каждый раз меняется по одному параметру, поэтому кэширование результата тут не подходит.

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

Писать этот механизм руками неохота, скорее всего должны быть уже готовые решения, собственно и вопрос — кто-нибудь знает про что то подобное?

Слышал что в .net есть подобная штука — DataTable называется.
  • Вопрос задан
  • 3030 просмотров
Пригласить эксперта
Ответы на вопрос 4
@soines
А ты уверен что подобная выборка в коде будет работать быстрее чем запрос к базе данных, учитывая что там будут правильно стоять индексы?
Ответ написан
Комментировать
opium
@opium
Просто люблю качественно работать
Приведите примеры запросов и структуру таблицу.
Ответ написан
Комментировать
Riateche
@Riateche
Для этого не нужно готовое решение. Просто выбираете нужные данные, кладете их в memcached и следите за их актуальностью (обновляете кеш при изменении данных или при отсутствии кеша). Это всего несколько строчек. Вот вам пример: www.php.net/manual/en/memcache.examples-overview.php

А лучше просто отдайте базе побольше оперативки под кеш, она умная и всё сделает за вас.
Ответ написан
Комментировать
eternals
@eternals
В .net много чего есть. В Вашем случае есть 2 подслучая: для этих запросов имеет смысл сделать view с кэшем и к нему делать select или не париться и мучить БД. В памяти быстрее может быть из-за отсутствия блокировок, но если СУБД нормальная, то и у неё всё будет быстро на чтение.
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы