разложить данные по колонкам. Иными словами:
Table (
Goal1ID UInt32,
Goal1EventTime DateTime,
Goal2ID UInt32,
Goal2EventTime DateTime
)
vs
Table (
Goals Nested (
ID UInt32,
EventTime DateTime
)
)
У какого подхода какие могут быть преимущества-недостатки? В доке как-то очень скудно описан тип данных Nested.
nested это сахар для create table. На самом деле это обычные массивы т.е. `Goals.ID` Array( UInt32) , `Goals.EventTime` Array(DateTime) если есть возможность выносить в колонки то лучше выносить. Например я столкнулся с такой проблемой у меня было `Goals.ID` Array(String) , `Goals.EventTime` Array(String) Goals.ID много разных, некоторые тяжелые, некоторые легкие и например выяснилось что если искать Goals.EventTime`[indexOf(`Goals.ID, 'aaaa')] то с диска читается 8TБ а если вынести в отдельную колонку Goals_aaaa то читает 80MB и запрос выполняется в 500 раз быстрее
Обсуждают сегодня