BY добавлять actionable_id в этом примере данных?
Структура таблицы:
user_id uint32, current_id uint32, actionable_id uint32
ORDER BY (user_id, current_id)
Пример данных:
user_id | current_id | actionable_id
1 | 1 | 10
15047 | 1 | 32
9 | 1 | 81
10 | 1 | 13
1 | 2 | 10
15047 | 2 | 32
9 | 2 | 81
10 | 2 | 13
При условии, что в каждом уникальном current_id никогда не дублируется actionable_id?
IMHO тут лучше DELTA codec лучше применить
точно, надо попробовать. спасибо
А можете подсказать сильное ли будет снижение производительности при запросе вида SELECT COUNT(*) FROM actions WHERE current_id = 2 GROUP BY user_id ? при условии использовании delta codec на current_id
я имел ввиду дельта кодек на actionable_id но в принципе и на current_id можно сделать дельту нет оно не влияет почти на производитительность у вас в основном на GROUP BY время CPU уйдет и на WHERE current_id = 2 на сравнение
можно попробовать LowCardinality(uint32) использовать вместо кодека...
Я же правильно понимаю, что LowCardinality создаёт словарь, и чем больше уникальных значений, тем хуже в плане производительности для словаря?
ну он словарь на блок создает, так что серьезные проблемы тогда когда больше сотен тысяч на блок
Гениально. Спасибо.
Обсуждают сегодня