Select count() from table
prewhere (code, dt ) in ( select code, max(dt) from table group by code )
Работает за 400мс
В самой табле 23м
Выборка 119к
Сортировка по code, dt
Гранулярность 8192
Что тут сделано не так и как можно ускорить ?
Так вам достаточно просто сделать SELECT count() from table group by code
code и dt в ORDER BY стоят? а вообще какой смысл запроса то вообще? что хотите получить? кол-во уникальный code? зачем max(dt) нужен?
select uniqExact(code) from table
так а внутренний запрос сколько работает? (code, dt ) in ( select -- сломали недавно можно сделать примерно тоже самое черз argmax -- но выберется одна строка для каждого макс
Уже разобрался Изменение порядка сортировки в dt, code Ускорило в 2 раза В результате вместо чтения 17м строк получил чтение 700к строк
Обсуждают сегодня