Skip to content

Commit

Permalink
Merge pull request #60541 from Alex-Cheng/master
Browse files Browse the repository at this point in the history
Update Chinese document for max_query_size, max_parser_depth and optimize_functions_to_subcolumns
  • Loading branch information
Algunenano committed Mar 8, 2024
2 parents ded2a9f + 84339ac commit 95b004d
Show file tree
Hide file tree
Showing 3 changed files with 87 additions and 3 deletions.
37 changes: 35 additions & 2 deletions docs/zh/operations/settings/settings.md
Expand Up @@ -649,11 +649,22 @@ log_query_threads=1

## max_query_size {#settings-max_query_size}

查询的最大部分,可以被带到RAM用于使用SQL解析器进行解析。
插入查询还包含由单独的流解析器(消耗O(1)RAM)处理的插入数据,这些数据不包含在此限制中。
SQL 解析器解析的查询字符串的最大字节数。 INSERT 查询的 VALUES 子句中的数据由单独的流解析器(消耗 O(1) RAM)处理,并且不受此限制的影响。

默认值:256KiB。


## max_parser_depth {#max_parser_depth}

限制递归下降解析器中的最大递归深度。允许控制堆栈大小。

可能的值:

- 正整数。
- 0 — 递归深度不受限制。

默认值:1000。

## interactive_delay {#interactive-delay}

以微秒为单位的间隔,用于检查请求执行是否已被取消并发送进度。
Expand Down Expand Up @@ -1064,6 +1075,28 @@ ClickHouse生成异常

默认值:0。

## optimize_functions_to_subcolumns {#optimize_functions_to_subcolumns}

启用或禁用通过将某些函数转换为读取子列的优化。这减少了要读取的数据量。

这些函数可以转化为:

- [length](../../sql-reference/functions/array-functions.md/#array_functions-length) 读取 [size0](../../sql-reference/data-types/array.md/#array-size)子列。
- [empty](../../sql-reference/functions/array-functions.md/#empty函数) 读取 [size0](../../sql-reference/data-types/array.md/#array-size)子列。
- [notEmpty](../../sql-reference/functions/array-functions.md/#notempty函数) 读取 [size0](../../sql-reference/data-types/array.md/#array-size)子列。
- [isNull](../../sql-reference/operators/index.md#operator-is-null) 读取 [null](../../sql-reference/data-types/nullable. md/#finding-null) 子列。
- [isNotNull](../../sql-reference/operators/index.md#is-not-null) 读取 [null](../../sql-reference/data-types/nullable. md/#finding-null) 子列。
- [count](../../sql-reference/aggregate-functions/reference/count.md) 读取 [null](../../sql-reference/data-types/nullable.md/#finding-null) 子列。
- [mapKeys](../../sql-reference/functions/tuple-map-functions.mdx/#mapkeys) 读取 [keys](../../sql-reference/data-types/map.md/#map-subcolumns) 子列。
- [mapValues](../../sql-reference/functions/tuple-map-functions.mdx/#mapvalues) 读取 [values](../../sql-reference/data-types/map.md/#map-subcolumns) 子列。

可能的值:

- 0 — 禁用优化。
- 1 — 优化已启用。

默认值:`0`

## distributed_replica_error_half_life {#settings-distributed_replica_error_half_life}

- 类型:秒
Expand Down
26 changes: 25 additions & 1 deletion docs/zh/sql-reference/data-types/array.md
@@ -1,7 +1,7 @@
---
slug: /zh/sql-reference/data-types/array
---
# 阵列(T) {#data-type-array}
# 数组(T) {#data-type-array}

`T` 类型元素组成的数组。

Expand Down Expand Up @@ -66,3 +66,27 @@ SELECT array(1, 'a')
Received exception from server (version 1.1.54388):
Code: 386. DB::Exception: Received from localhost:9000, 127.0.0.1. DB::Exception: There is no supertype for types UInt8, String because some of them are String/FixedString and some of them are not.
```

## 数组大小 {#array-size}

可以使用 `size0` 子列找到数组的大小,而无需读取整个列。对于多维数组,您可以使用 `sizeN-1`,其中 `N` 是所需的维度。

**例子**

SQL查询:

```sql
CREATE TABLE t_arr (`arr` Array(Array(Array(UInt32)))) ENGINE = MergeTree ORDER BY tuple();

INSERT INTO t_arr VALUES ([[[12, 13, 0, 1],[12]]]);

SELECT arr.size0, arr.size1, arr.size2 FROM t_arr;
```

结果:

``` text
┌─arr.size0─┬─arr.size1─┬─arr.size2─┐
│ 1 │ [2] │ [[4,1]] │
└───────────┴───────────┴───────────┘
```
27 changes: 27 additions & 0 deletions docs/zh/sql-reference/data-types/nullable.md
Expand Up @@ -20,6 +20,33 @@ slug: /zh/sql-reference/data-types/nullable

掩码文件中的条目允许ClickHouse区分每个表行的对应数据类型的«NULL»和默认值由于有额外的文件,«Nullable»列比普通列消耗更多的存储空间

## null子列 {#finding-null}

通过使用 `null` 子列可以在列中查找 `NULL` 值,而无需读取整个列。如果对应的值为 `NULL`,则返回 `1`,否则返回 `0`

**示例**

SQL查询:

``` sql
CREATE TABLE nullable (`n` Nullable(UInt32)) ENGINE = MergeTree ORDER BY tuple();

INSERT INTO nullable VALUES (1) (NULL) (2) (NULL);

SELECT n.null FROM nullable;
```

结果:

``` text
┌─n.null─┐
│ 0 │
│ 1 │
│ 0 │
│ 1 │
└────────┘
```

## 用法示例 {#yong-fa-shi-li}

``` sql
Expand Down

0 comments on commit 95b004d

Please sign in to comment.