Здравствуйте, vsb, Вы писали: vsb>Почему? Postgres умеет строить индекс по конкретному выражению внутри JSON и применять его для фильтрации (возможно и для сортировки, не проверял). Другие коммерческие базы наверняка не хуже. Не просто так же ввели отдельный тип для JSON, XML, весь смысл в том, чтобы база умела смотреть внутрь. Я думал в этом направлении, то бишь изначально предполагаем, что первичного фильтра нам хватает (например по типу товара), а для дальнейшей фильтрации база может и просканировать все отобранные записи. Если это начинает вызывать проблемы (у нас тысячи моделей мониторов и пользователи часто ищут мониторы с конкретными диагоналями), добавляем индекс по нужному подвыражению.
В том-то и дело, что "по нужному подвыражению". В таком виде можно прикрутить "искабельность" даже к древним базам — главное, чтобы было понятие "вычисляемая колонка" и индексы по ним.
Это требует постоянного мониторинга статистики эксплуатации, и регулярного тюнинга индексов. Не то, чтобы это было прямо плохо, просто не всегда возможно.
А банальный EAV обойдётся парой индексов отсюда и навсегда.
Уйдемте отсюда, Румата! У вас слишком богатые погреба.