по ~10 колонкам, получается в ORDER BY должны быть эти 10 колонок... или делать несколько табличек, как правильнее?
ну так идея колоночных баз данных, что индексы не нужны, все и так работает.
просто в обычном MT насколько я помню не рекомендуется ключ сортировки растягивать на 10 колонок, но в AggregatingMT если колонка не в ключе сортировки - она должна быть AggregatingFunction
да, поэтому и есть ORDER BY и PRIMARY KEY, в PRIMARY KEY кладете 3 колонки, а в ORDER BY 33
А, понял, спасибо!
Зависит от селектов, которые пойдут к данной таблице. Если к данной таблице подразумевается настройка на разные включенные фильтры дашборда, например на 1, 3, 4; 2, 5, 6 и 7, 8 столбцы, лучше будут работать матер. проекции к данной таблице, настроенные именно на эту сортировку. Сортировку лучше настраивать начиная со столбцов с минимальным количестом уникальных значений (мощностью), с последовательным увеличением. Этот момент проще самому посмотреть данных, сделав множественную сортировку в дибивере, или в датагрпе на небольшой выборке. Смысл сортировки в создании серий повторяющихся значений в столбце, по которым может работать бинарный алгоритм при фильтрации, агрегации, join, или кодирование в RLE, lz4. При сортировке по уникальному id для последующих "этажей" order by останутся подгруппы из одного значения, сортировать там будет нечего и последующие уровни сортировки станут бессмысленными. Тот же самый эффект происходит при множественной сортировке, при условии, что проход по данным происходит не последовательно, с первого по последний из отсортированных столбцов, а скажем, сразу на 8-й. Потом ещё по последовательности сортировки. В витринах часто встречаются однотипные, заранее просчитанные статусы из 2х - 5ти уникальных значений. По идее, если написать простейший скрипт, вычисляющей корреляцию между однотипными столбцами, оптимально выбранная последовательность сортировки должна работать. Эта идея реализована в Дизайнере Вертики, судя по служебным меткам, остающимся после его запуска. Пару лет назад возникала идея написать и потестить подобный скриптик, но не дошли руки, хватало других забот.
Благодарю за развернутый ответ!
Обсуждают сегодня