У меня есть ваше среднее приложение PHP (работает на сервере Windows) с формами и сетями данных/списками, а некоторые из них требуют выполнения довольно сложных запросов, которые я оптимизировал до максимума, и я сомневаюсь, что тонна, которая может быть выполнена чтобы заставить их работать намного быстрее. У меня также нет возможности изменить структуру базы данных, учитывая другие процессы, зависящие от структуры. Так как кэширование на самом деле не очень много используется в приложении, это, кажется, следующий логический шаг.
Недавно я прочитал о кэшировании поколений и разработал достойный механизм для автоматизации кэширования запросов в моих приложениях. Моя проблема теперь в том, что я столкнулся с ограничениями по размеру для обоих вариантов, которые оказались логичными. WinCache ограничивает вас до 85 МБ, что не собирается сокращать его, а memcached ограничивает элемент до 1 МБ, что мало похоже на то, что у вас есть запрос, который возвращает довольно большое количество записей и имеет много полей. ОК, точнее, похоже, что memcached теперь позволяет установить более крупный размер, но тот факт, что он по умолчанию равен 1 Мбайт и используется только для этого, позволяет мне подвергнуть сомнению то, что я пытаюсь сделать.
Максимальное количество записей, которые моя сетка разрешает возвращать сразу, составляет 1000 записей, поэтому максимальное количество записей, которые могут быть сохранены в кеше (поля на запись различаются, конечно). Я знаю, что огромное количество пользователей, вероятно, означало бы, что кеш будет заполняться очень быстро, но количество одновременных пользователей обычно невелико и из того, что я читал, если memcached исчерпал память, он просто избавится от самого старого кешированные элементы, поэтому я не вижу большого недостатка с хранением больших наборов данных, если операция не очень дорогая, но из того, что я прочитал, похоже, не так.
Итак, что мне интересно, если это плохая идея хранить большие массивы данных в memcached (и предоставлена, я знаю, что я не хочу хранить запрос с миллионами записей там). И если это плохая идея, что было бы хорошей альтернативой для кеширования/повышения производительности при извлечении этих наборов данных?