Кэш запросов и таблица, хранящаяся в ПАМЯТИ

Я планирую оптимизировать производительность своего веб-приложения с помощью кэширования данных. Он использует MySQL, поэтому варианты, которые я нашел до сих пор, следующие:

  • использовать функцию кеша запросов MySQL
  • сделать таблицу с помощью механизма хранения в памяти и хранить в ней полный результат запросов в виде сериализованных массивов;

Я бы предпочел второй, так как есть только таблица, которую мне нужно кэшировать, а кеш запросов при модификации таблицы сразу делает недействительными все запросы, полученные из этой таблицы. Пока в моей таблице памяти я могу удалить только те строки, которые были изменены (ОБНОВЛЕНЫ). Конечно, для этого потребуется больше битов кода, но я думаю, что общая производительность будет лучше.

Что посоветуете и почему?


person adrian7    schedule 06.08.2012    source источник
comment
проверьте memcache, кеш запросов mysql будет бесполезен, если у вас слишком много обновлений. Таблицы памяти mysql будут адом в управлении, их сложно синхронизировать, вы можете использовать mysql-cluster ndb, если хотите в таблице памяти с синхронизацией диска, но несколько машин (или процесс на одном) - проблема для большинства   -  person Hawili    schedule 06.08.2012
comment
Да, я тоже проверю memcache, но в будущем, если я собираюсь распространять свое приложение среди большего количества клиентов, мне будет нехорошо просить их установить memcache на свои серверы только потому, что мое приложение не может работать без него. это... правильно?   -  person adrian7    schedule 06.08.2012
comment
о, я забыл, вы можете использовать триггеры из mysql напрямую для обновления таблицы памяти :) или APC вместо memcache, обычно он идет в комплекте с php   -  person Hawili    schedule 07.08.2012


Ответы (1)


Сделать таблицу с помощью механизма хранения в памяти и хранить в ней полный результат запросов в виде сериализованных массивов;

  • 1) Вы имеете в виду, что сеанс # использует Redis с открытым исходным кодом (лицензия BSD), хранилище структуры данных в памяти, используемое в качестве базы данных, кеша и брокера сообщений.
  • 2) Вы имеете в виду кэш запросов #

см. это

надеюсь, это поможет вам сделать быстрое веб-приложение

person stren    schedule 21.04.2017
comment
Хотя эта ссылка может ответить на вопрос, лучше включить сюда основные части ответа и предоставить ссылку для справки. Ответы, содержащие только ссылки, могут стать недействительными, если связанная страница изменится. – Из обзора - person William Robertson; 23.04.2017
comment
да, братан, но это большая вещь, если увидеть, что в ней много деталей - person stren; 23.04.2017