Сведения о вопросе

krutoi

05:13, 2nd October, 2020

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

Просмотров: 327   Ответов: 4

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

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

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

Слышал что в .net есть подобная штука — DataTable называется.



  Сведения об ответе

darknet

05:53, 27th September, 2020

А ты уверен что подобная выборка в коде будет работать быстрее чем запрос к базе данных, учитывая что там будут правильно стоять индексы?


  Сведения об ответе

screen

18:14, 26th September, 2020

Приведите примеры запросов и структуру таблицу.


  Сведения об ответе

nYU

17:54, 27th September, 2020

Для этого не нужно готовое решение. Просто выбираете нужные данные, кладете их в memcached и следите за их актуальностью (обновляете кеш при изменении данных или при отсутствии кеша). Это всего несколько строчек. Вот вам пример: www.php.net/manual/en/memcache.examples-overview.php

А лучше просто отдайте базе побольше оперативки под кеш, она умная и всё сделает за вас.


  Сведения об ответе

прога

11:38, 25th September, 2020

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


Ответить на вопрос

Чтобы ответить на вопрос вам нужно войти в систему или зарегистрироваться