These settings are available in system.settings and are autogenerated from source.
optimize_limit_by_function_keys
Version history
| Version | Default value | Comment |
|---|---|---|
| 26.6 | 1 | New setting that eliminates LIMIT BY keys that are functions of other LIMIT BY keys. |
Eliminates functions of other keys in LIMIT BY section.
Example: LIMIT 5 BY x, f(x) becomes LIMIT 5 BY x.
optimize_limit_by_in_order
Version history
| Version | Default value | Comment |
|---|---|---|
| 26.6 | 1 | New setting to optimize `LIMIT BY` queries when `BY` columns are a prefix of the table's sorting key. |
Optimize SELECT ... LIMIT N BY <cols> queries when <cols> (in any order) form a prefix of the table’s sorting key, or become one after WHERE col = const fixes leading columns. With this enabled the source reads data in primary-key order, so rows with equal values of the BY columns arrive adjacent to each other within each stream. When the data arrives in a single sorted stream, LIMIT BY filters it in streaming mode with O(1) memory, instead of building a hash table of every distinct combination of BY columns seen. When the sorted data arrives in multiple streams and the same BY values can appear in more than one of them, each stream is first prefiltered in streaming mode down to at most LIMIT + OFFSET rows per group, then the streams are combined and a final hash-based LIMIT BY deduplicates groups that span several streams. That final pass still keeps an entry for every distinct combination of BY columns, but it only processes the prefiltered rows.