Александр Бындю: разрабатываю SaaS систему (для примера пусть будет сервис создания сайтов), каждый клиент имеет данные относящиеся только к нему, например каталог товаров, шаблоны, страницы, ...
Делая тяжелую выборку каталога товаров хочется закешировать её (Дмитрий Полушкин для этого и есть слой Cache-серверов), отдавая страницы сайта клиента, их нужно сгенерировать (из шаблона и контента клиента) и желательно так же закешировать (идеально в файлы, которые затем отдавать веб-сервером).
Встаёт вопрос где этот кеш держать (с запросами к бд понятно, для них можно сделать отдельный уровень архитектуры с хранением данных в оп. памяти, некое подобие CQRS), а вот что делать с файловым кешом? Если его держать на серверах приложений, получается на каждом из них будет N копий кеша (N - число клиентов).
Да, именно на PHP. ORM действительно много. Сам пользуюсь доктриной, очень нравится. Но диплом делать нужно =)
Поэтому вот думаю что лучше сделать в своей ORM. Основной правило при разработке будет: правило наименьшего удивления.
Полный перебор меня конечно же не устраивает, и я вот ищу инструменты для создания какого-либо индекса, или статей описывающих как такой можно построить?
База пока только планируется. SQL или NoSQL без разницы. Тегов может быть огромное количество. Мне нужно не пересечение, а наилучшее совпадение. Можно конечно использовать для этого MapReduce, но не охота выполнять перебор всех записей.