clickhouse
https://github.com/yandex/clickhouse
C++
ClickHouse is a free analytic DBMS for big data.
Triage Issues!
When you volunteer to triage issues, you'll receive an email each day with a link to an open issue that needs help in this project. You'll also receive instructions on how to triage issues.
Triage Docs!
Receive a documented method or class from your favorite GitHub repos in your inbox every day. If you're really pro, receive undocumented methods or classes and supercharge your commit history.
C++ not yet supported66 Subscribers
View all SubscribersAdd a CodeTriage badge to clickhouse
Help out
- Issues
- Text index: multiSearchAny, match() and multiMatchAny skip the index for needles inside one token, and optimize_or_like_chain turns indexed LIKE/ILIKE chains into such calls; a dictionary scan makes their counts ~95% faster on large parts
- TimeSeries: the rows of a SELECT depend on the columns it reads, so count() over a subquery disagrees with the subquery
- Random test
- WIP: Reuse identical AI function inputs within one query
- Parquet: length(s), empty(s) and s <> '' copy every string; reading only the lengths makes ClickBench q28 26% faster
- Parquet: the query condition cache marks whole row groups and skips filters left in WHERE, so reruns of selective queries decode almost every page again (ClickBench q22 -75%, q23 -53%, q21 -38%)
- PromQL: on top of #122585, keeping the computed steps of partial chunks makes 6 h–7 d dashboard refreshes 1.7–10x faster
- TimeSeries: order series by job, series kind and host in new tables: per-host, per-node and per-job PromQL selectors read fewer granules
- count() over file/url/S3 re-emits a cached row count as max_block_size chunks; one chunk per file makes ClickBench q1 on Parquet 13x faster
- Parquet ORDER BY x LIMIT n: with one sort column, row groups whose minimum equals the top-K threshold are still read; skipping them makes ORDER BY EventDate LIMIT 10 27% faster
- Docs
- C++ not yet supported