Storig DB результаты локально / кэш для будущих операций - PullRequest
0 голосов
/ 23 марта 2011

Я хочу получить доступ к БД только один раз и сохранить результаты в локальной памяти / кэше для будущих действий Например: я хочу выполнить этот запрос первым;

$query = "select * from songs";

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

   $query1 = "select * from songs order by song_id asc";
   $query2 = "select song_name from songs where song_id='5'";

Я использую PHP для доступа к БД.

1 Ответ

1 голос
/ 23 марта 2011

Вот несколько идей:

  1. Использовать "локальную" внутреннюю базу данных SQL, такую ​​как SQLite . SQLite очень быстрый (во многих [тривиальных] случаях он работает быстрее, чем MySQL, PostgreSQL или Firebird) и поддерживает хорошее подмножество синтаксиса SQL-92, но есть дополнительные издержки для заполнения «набора данных» "(БД SQLite) и построение любых индексов и т. Д. Этот подход обеспечивает большую гибкость и обеспечивает постоянство.

  2. Используйте memcached или аналогичный. Однако memcached не будет соответствовать модели, предусмотренной . В моделях, где memcached работает, такой подход может работать очень хорошо.

  3. Можно «просто» сохранить объекты / строки и затем выполнить запрос вручную по массиву в памяти (без синтаксиса SQL).

  4. Может быть несколько прозрачных систем кэширования, таких как исследовательский проект MTCache . У меня нет опыта работы с ними, и я не знаю, существует ли жизнеспособное решение [для PHP].

Все вышеперечисленные предложения в значительной степени зависят от точного контекста / ситуации, и может фактически влиять на производительность и / или «правильные результаты». Помните, что MySQL фактически выполняет хороший бит внутренняя работа по обеспечению того, чтобы страницы / кэш данных были «горячими» и могли выполнять другое кэширование по своему усмотрению; в сочетании с хорошими показателями я не мог порекомендовать ничего из вышеперечисленного, за исключением «автономных» операций или случаев, когда анализ производительности показал, что требуется выполнить функциональных требований .

Удачного кодирования.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...