с партиционированием по дате. В логе есть два инта. Первый кому (и он входит в primary index). Второй - кто. И вот надо запрашивать иногда кто в конкретный день что-то сделал. То есть что-то типа индекса на второй инт, но только в пределах партиции. Уникальных значений второго инта около 3к в партиции. Записей в партиции 1.5 ярда. Попробовал skipped index - работает отлично только если нету записей.
Сейчас буду сравнивать проджекшен и материалайзед вью, но вдруг есть какие другие решения?
Да вариантов не много, если у вас вторичные индексы не подошли, и все крутятся вокруг иного order by (pk). Это или мат.представление, или проекции, или 2 таблички, в которые загружают мат.представления из таблицы с движком null ( аналог первого варианта)
>второго инта около 3к в партиции т.е. "кто" это низкокардинальное поле и одинаковое у кучи записей? ну тогда никак, вы не сможете сделать быстрее чем фулскан
Эх... Учитывая что в день туда 5к запросов делается на селект делать на это 2х места так жалко... :)
там не два 2х места, там только часть полей в проекции
Может кодеками получится сжать чуть больше - всякие t64 и все в таком духе.
Так судя по вашему ответу мне проекция не особо поможет с низкокардинальным полем
С этим конечно будем играть, но уже после того как основную структуру придумаю :)
а чем фуллскан не устраивает?
Медленно :(.
Обсуждают сегодня