Size: a a a

ClickHouse не тормозит

2021 February 13

S

Slach in ClickHouse не тормозит
Andrew Kochen
Нет, uuid не используем..
а НАДО
источник

S

Slach in ClickHouse не тормозит
Andrew Kochen
Нет, uuid не используем..
я не про тип данных
я про макрос
источник

AK

Andrew Kochen in ClickHouse не тормозит
Slach
я не про тип данных
я про макрос
Ага, спасибо, я пока только представляю, что это. В доке про это есть?)
У нас пока в проде базы со старым движком Ordinary. Atomic пока что только в тестах )
источник

S

Slach in ClickHouse не тормозит
Andrew Kochen
Ага, спасибо, я пока только представляю, что это. В доке про это есть?)
У нас пока в проде базы со старым движком Ordinary. Atomic пока что только в тестах )
нету, feel free to make pull request
источник

AK

Andrew Kochen in ClickHouse не тормозит
Slach
database_atomic_delay_before_drop_table_sec=0

можно попробовать, но не советовал бы

у вас {uuid} используется в ReplicatedMergeTree таблицах или нет?
Received exception from server (version 21.2.2):
Code: 115. DB::Exception: Received from localhost:9100. DB::Exception: Unknown setting database_atomic_delay_before_drop_table_sec.
источник

S

Slach in ClickHouse не тормозит
Andrew Kochen
Received exception from server (version 21.2.2):
Code: 115. DB::Exception: Received from localhost:9100. DB::Exception: Unknown setting database_atomic_delay_before_drop_table_sec.
вы ее где ставите?
судя по всему это глобальная настройка
в config.d положите
https://github.com/ClickHouse/ClickHouse/search?q=database_atomic_delay_before_drop_table_sec
источник

AK

Andrew Kochen in ClickHouse не тормозит
через set пытался делать. Через глобальную заработало) Спасибо!
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
Коллеги, как лучше?
1) SELECT uniqExact(x) FROM table
2) SELECT count() FROM (SELECT 1 FROM table GROUP BY x)
3) ...
источник

DN

Dmitriy Novikov in ClickHouse не тормозит
Konstantin Malanchev
Коллеги, как лучше?
1) SELECT uniqExact(x) FROM table
2) SELECT count() FROM (SELECT 1 FROM table GROUP BY x)
3) ...
Посмотрите время?)
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
А по памяти?
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
Я понимаю, что груп бай и на диск может лечь
источник

TG

Tagir Gumerov in ClickHouse не тормозит
Konstantin Malanchev
А по памяти?
Посмотрите память:)
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
Ценные советы, обязательно попробую :₽)
источник

TG

Tagir Gumerov in ClickHouse не тормозит
Konstantin Malanchev
Коллеги, как лучше?
1) SELECT uniqExact(x) FROM table
2) SELECT count() FROM (SELECT 1 FROM table GROUP BY x)
3) ...
Насколько я знаю, если x в lowcardinality, то лучше group by.
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
Спасибо!
источник

S

Slach in ClickHouse не тормозит
Konstantin Malanchev
Коллеги, как лучше?
1) SELECT uniqExact(x) FROM table
2) SELECT count() FROM (SELECT 1 FROM table GROUP BY x)
3) ...
первый вариант будет быстрее и экономнее по памяти
второй вариант фактически вы дважды делаете AggregationTransform (второй раз для coun()

EXPLAIN PIPELINE
SELECT uniqExact(x)
FROM default.test

Query id: ec6e8db0-ab3e-4366-b7a0-5d687581c7f0

┌─explain──────────────────────────┐
│ (Expression)                     │
│ ExpressionTransform              │
│   (Aggregating)                  │
│   AggregatingTransform           │
│     (Expression)                 │
│     ExpressionTransform          │
│       (SettingQuotaAndLimits)    │
│         (ReadFromPreparedSource) │
│         NullSource 0 → 1         │
└──────────────────────────────────┘

EXPLAIN PIPELINE
SELECT count()
FROM
(
   SELECT 1
   FROM default.test
   GROUP BY x
)

Query id: e96c611c-a67e-44b8-ad85-f72a8aa087f1

┌─explain──────────────────────────────┐
│ (Expression)                         │
│ ExpressionTransform                  │
│   (Aggregating)                      │
│   AggregatingTransform               │
│     (Expression)                     │
│     ExpressionTransform              │
│       (Aggregating)                  │
│       AggregatingTransform           │
│         (Expression)                 │
│         ExpressionTransform          │
│           (SettingQuotaAndLimits)    │
│             (ReadFromPreparedSource) │
│             NullSource 0 → 1         │
└──────────────────────────────────────┘
источник

DT

Dmitry Titov in ClickHouse не тормозит
Slach
первый вариант будет быстрее и экономнее по памяти
второй вариант фактически вы дважды делаете AggregationTransform (второй раз для coun()

EXPLAIN PIPELINE
SELECT uniqExact(x)
FROM default.test

Query id: ec6e8db0-ab3e-4366-b7a0-5d687581c7f0

┌─explain──────────────────────────┐
│ (Expression)                     │
│ ExpressionTransform              │
│   (Aggregating)                  │
│   AggregatingTransform           │
│     (Expression)                 │
│     ExpressionTransform          │
│       (SettingQuotaAndLimits)    │
│         (ReadFromPreparedSource) │
│         NullSource 0 → 1         │
└──────────────────────────────────┘

EXPLAIN PIPELINE
SELECT count()
FROM
(
   SELECT 1
   FROM default.test
   GROUP BY x
)

Query id: e96c611c-a67e-44b8-ad85-f72a8aa087f1

┌─explain──────────────────────────────┐
│ (Expression)                         │
│ ExpressionTransform                  │
│   (Aggregating)                      │
│   AggregatingTransform               │
│     (Expression)                     │
│     ExpressionTransform              │
│       (Aggregating)                  │
│       AggregatingTransform           │
│         (Expression)                 │
│         ExpressionTransform          │
│           (SettingQuotaAndLimits)    │
│             (ReadFromPreparedSource) │
│             NullSource 0 → 1         │
└──────────────────────────────────────┘
https://github.com/ClickHouse/ClickHouse/issues/16533

вообще uniqExact в некоторых случаях медленнее GROUP BY
источник

S

Slach in ClickHouse не тормозит
о, не знал об этом, спасибо
источник

KM

Konstantin Malanchev in ClickHouse не тормозит
Cпасибо!
источник

P

Pavel in ClickHouse не тормозит
источник