4.2sec и как стоит оптимизировать? Таблица - ReplacingMergeTree, 1’671’699 записей, 75 колонок
SELECT * FROM tablename FINAL WHERE datefield <= '2021-06-02 10:39:34' AND `status`=‘statusname’ LIMIT 0, 20
SHOW CREATE TABLE tablename покажите?
Вероятнее всего из-за FINAL. И ещё, Вам точно все 75 колонок в выборке нужны?
create table tablename ( timestamp DateTime, approve_at Nullable(DateTime), id UUID, status Enum8('hold' = 1, 'approved' = 2, 'rejected' = 3), network_id UInt32, offer_id UInt32, merchant UInt32, … ) engine = ReplacingMergeTree() PARTITION BY toYYYYMM(timestamp) ORDER BY (timestamp, network_id, offer_id, merchant, id) SETTINGS index_granularity = 8192;
спасибо, навели меня на мысль, мне действительно не нужны все разом, в первом запросе достаточно запросить идентификаторы, а уже потом запрашивать все поля для конкретных
Обсуждают сегодня