背景:因为搜不到,所以自己搞,命令项很多,当作一个字典来看吧!
- `-V [ --version ]`:打印版本信息并退出。
- `--version-clean`:以机器可读的格式打印版本信息并退出。
- `-C [ --config-file ] arg`:配置文件路径。
- `-q [ --query ] arg`:查询语句,可以多次指定(例如 `--query "SELECT 1" --query "SELECT 2"`)。
- `--queries-file arg`:包含要执行查询的文件路径,可以指定多个文件(例如 `--queries-file file1 file2...`)。
- `-n [ --multiquery ]`:如果指定,允许在 `--query` 后列出多个用分号分隔的查询。也可以省略 `--query`,直接在 `--multiquery` 后传递查询。
- `-m [ --multiline ]`:如果指定,允许多行查询(不会在按下回车时发送查询)。
- `-d [ --database ] arg`:数据库。
- `--query_kind arg (=initial_query)`:查询类型,可选值为 `initial_query`、`secondary_query` 或 `no_query`。
- `--query_id arg`:查询 ID。
- `--history_file arg`:历史文件路径。
- `--stage arg (=complete)`:请求查询处理到指定阶段:`complete`、`fetch_columns`、`with_mergeable_state` 等。
- `--progress [=arg(=tty)] (=default)`:打印查询执行进度——在 TTY 上打印:`tty`、`on`、`1`、`true`、`yes`;在非交互模式下打印到 STDERR:`err`;关闭:`off`、`0`、`false`、`no`;默认值为交互模式打印到 TTY,非交互模式关闭。
- `-A [ --disable_suggestion ]`:禁用加载建议数据。注意,建议数据是通过第二个连接异步加载到 ClickHouse 服务器的。如果要粘贴包含制表符的查询,也建议禁用建议功能。简写选项 `-A` 是为习惯使用 MySQL 客户端的用户提供的。
- `-t [ --time ]`:在非交互模式下打印查询执行时间到标准错误输出(用于基准测试)。
- `--echo`:在批处理模式下,打印查询语句后再执行。
- `--verbose`:打印查询语句和其他调试信息。
- `--log-level arg`:日志级别。
- `--server_logs_file arg`:将服务器日志保存到指定文件。
- `--suggestion_limit arg (=10000)`:建议数据的限制,用于限制获取的数据库、表和列的数量。
- `-f [ --format ] arg`:默认输出格式。
- `-E [ --vertical ]`:垂直输出格式,等同于 `--format=Vertical` 或在命令末尾添加 `FORMAT Vertical` 或 `\G`。
- `--highlight arg (=1)`:启用或禁用交互式命令行中的基本语法高亮。
- `--ignore-error`:在多查询模式下,即使遇到错误也不停止处理。
- `--stacktrace`:打印异常的堆栈跟踪。
- `--hardware-utilization`:在进度条中打印硬件利用率信息。
- `--print-profile-events`:打印 ProfileEvents 数据包。
- `--profile-events-delay-ms arg (=0)`:打印 `ProfileEvents` 数据包的延迟(单位:毫秒)。`-1` 表示仅打印总计,`0` 表示打印每个数据包。
- `--processed-rows`:打印本地处理的行数。
- `--interactive`:处理 `--queries-file` 或 `--query` 查询后进入交互模式。
- `--pager arg`:将所有输出通过该命令处理(例如 `less` 或类似工具)。
- `--max_memory_usage_in_client arg`:设置客户端/本地服务器的内存限制。
- `-c [ --config ] arg`:配置文件路径(另一种简写方式)。
- `--connection arg`:使用的连接(来自客户端配置),默认连接名称为 `hostname`。
- `-s [ --secure ]`:使用 TLS 连接。
- `-u [ --user ] arg (=default)`:用户(默认值为 `default`)。
- `--password arg`:密码。
- `--ask-password`:提示输入密码。
- `--ssh-key-file arg`:包含 SSH 私钥的文件路径,用于身份验证。如果未设置,则使用密码认证。
- `--ssh-key-passphrase arg`:导入的 SSH 密钥的密码短语。
- `--quota_key arg`:用于区分配额的字符串,当用户在服务器上有带键的配额配置时使用。
- `--max_client_network_bandwidth arg`:客户端的最大网络数据交换速度(单位:字节/秒)。
- `--compression arg`:启用或禁用压缩(默认情况下,远程通信启用压缩,本地通信禁用压缩)。
- `--query-fuzzer-runs arg (=0)`:在执行每个 `SELECT` 查询后,对其进行随机变异并再次执行指定次数。此功能用于测试,以发现意外的边缘情况。
- `--create-query-fuzzer-runs arg (=0)`:未翻译。
- `--interleave-queries-file arg`:在 `queries-file` 中的每个文件之前执行的查询文件路径,可以指定多个文件(例如 `--queries-file file1 file2...`)。此功能用于启用对新添加测试的更激进的模糊测试(参见 `query-fuzzer-runs` 选项)。
- `--opentelemetry-traceparent arg`:OpenTelemetry traceparent 标头,符合 W3C Trace Context 推荐。
- `--opentelemetry-tracestate arg`:OpenTelemetry tracestate 标头,符合 W3C Trace Context 推荐。
- `--no-warnings`:禁用客户端连接到服务器时的警告。
- `--fake-drop`:忽略所有 `DROP` 查询,仅用于测试。
- `--accept-invalid-certificate`:忽略证书验证错误,等同于配置参数 `openSSL.client.invalidCertificateHandler.name=AcceptCertificateHandler` 和 `openSSL.client.verificationMode=none`。
- `--dialect arg`:用于解析查询的方言。
- `--min_compress_block_size arg`:压缩块的实际大小,如果未压缩数据小于 `max_compress_block_size` 且不小于此值,并且不小于一个标记的数据量,则会进行压缩。
- `--max_compress_block_size arg`:写入表时未压缩数据块的最大大小。
- `--max_block_size arg`:读取的最大块大小。
- `--max_insert_block_size arg`:插入的最大块大小,如果控制插入块的创建,则适用。
- `--min_insert_block_size_rows arg`:如果块的大小不足以达到指定的行数,则将插入查询的块压缩到指定大小。
- `--min_insert_block_size_bytes arg`:如果块的大小不足以达到指定的字节数,则将插入查询的块压缩到指定大小。
- `--min_insert_block_size_rows_for_materialized_views arg`:与 `min_insert_block_size_rows` 类似,但仅在推送至物化视图时适用(默认值为 `min_insert_block_size_rows`)。
- `--min_insert_block_size_bytes_for_materialized_views arg`:与 `min_insert_block_size_bytes` 类似,但仅在推送至物化视图时适用(默认值为 `min_insert_block_size_bytes`)。
- `--max_joined_block_size_rows arg`:连接结果的最大块大小(如果连接算法支持)。`0` 表示无限制。
- `--max_insert_threads arg`:执行 `INSERT SELECT` 查询的最大线程数。值为 `0` 或 `1` 表示 `INSERT SELECT` 不会并行执行。更高的值会导致更高的内存使用。`INSERT SELECT` 的并行执行只有在 `SELECT` 部分并行执行时才有效,请参见 `max_threads` 设置。
- `--max_insert_delayed_streams_for_parallel_write arg`:并行写入时延迟最终部分刷新的最大流(列)数。默认值为 `auto`(如果底层存储支持并行写入,例如 S3,则为 1000;否则禁用)。
- `--max_final_threads arg`:从带有 `FINAL` 的表中读取的最大线程数。
- `--max_threads_for_indexes arg`:处理索引的最大线程数。
- `--max_threads arg`:执行请求的最大线程数。默认情况下,此值会自动确定。
- `--use_concurrency_control arg`:尊重服务器的并发控制(请参阅全局服务器设置 `concurrent_threads_soft_limit_num` 和 `concurrent_threads_soft_limit_ratio_to_cores`)。如果禁用,即使服务器过载,也可以使用更多线程(不推荐正常使用,主要用于测试)。
- `--max_download_threads arg`:下载数据(例如 URL 引擎)的最大线程数。
- `--max_download_buffer_size arg`:并行下载(例如 URL 引擎)的每个线程的最大缓冲区大小。
- `--max_read_buffer_size arg`:从文件系统读取的最大缓冲区大小。
- `--max_read_buffer_size_local_fs arg`:从本地文件系统读取的最大缓冲区大小。如果设置为 `0`,则使用 `max_read_buffer_size`。
- `--max_read_buffer_size_remote_fs arg`:从远程文件系统读取的最大缓冲区大小。如果设置为 `0`,则使用 `max_read_buffer_size`。
- `--max_distributed_connections arg`:分布式查询的一个查询的最大连接数(应大于 `max_threads`)。
- `--max_query_size arg`:SQL 解析器解析的查询字符串的最大字节数。`INSERT` 查询的 `VALUES` 子句中的数据由单独的流解析器处理(该解析器占用常量内存,不受此限制)。
- `--interactive_delay arg`:检查请求是否被取消以及发送进度信息的间隔(单位:微秒)。
- `--connect_timeout arg`:如果没有副本,则为连接超时。
- `--handshake_timeout_ms arg`:从副本接收 `HELLO` 数据包的超时时间。
- `--connect_timeout_with_failover_ms arg`:选择第一个健康副本的连接超时时间。
- `--connect_timeout_with_failover_secure_ms arg`:选择第一个健康副本的 TLS 连接超时时间。
- `--receive_timeout arg`:从网络接收数据的超时时间(单位:秒)。如果在此间隔内没有收到任何字节,则会抛出异常。如果在客户端设置了此设置,则在服务器端的相应连接上也会设置 `send_timeout`。
- `--send_timeout arg`:向网络发送数据的超时时间(单位:秒)。如果客户端需要发送数据,但在该间隔内未能发送任何字节,则会抛出异常。如果在客户端设置了此设置,则在服务器端的相应连接上也会设置 `receive_timeout`。
- `--tcp_keep_alive_timeout arg`:TCP 连接在发送 keepalive 探测之前需要保持空闲的时间(单位:秒)。
- `--hedged_connection_timeout_ms arg`:为 Hedged 请求建立副本连接的超时时间。
- `--receive_data_timeout_ms arg`:从副本接收第一个数据包或带有正进度的数据包的连接超时时间。
- `--use_hedged_requests arg`:在分布式查询中使用 Hedged 请求。
- `--allow_changing_replica_until_first_data_packet arg`:允许 HedgedConnections 在收到第一个数据包之前切换副本。
- `--queue_max_wait_ms arg`:如果并发请求超过最大值,则在请求队列中等待的时间。
- `--connection_pool_max_wait_ms arg`:当连接池已满时的等待时间。
- `--replace_running_query_max_wait_ms arg`:在设置 `replace_running_query` 激活时,等待具有相同 `query_id` 的运行查询完成的等待时间。
- `--kafka_max_wait_ms arg`:从 Kafka 读取的等待时间,然后重试。
- `--rabbitmq_max_wait_ms arg`:从 RabbitMQ 读取的等待时间,然后重试。
- `--poll_interval arg`:在服务器端的查询等待循环中阻塞的指定秒数。
- `--idle_connection_timeout arg`:关闭空闲 TCP 连接的时间(单位:秒)。
- `--distributed_connections_pool_size arg`:与一个远程服务器的最大连接数。
- `--connections_with_failover_max_tries arg`:连接到副本的最大尝试次数。
- `--s3_strict_upload_part_size arg`:在分块上传到 S3 时,每个分块的精确大小(某些实现不支持可变大小的分块)。
- `--s3_min_upload_part_size arg`:在分块上传到 S3 时,分块的最小大小。
- `--s3_max_upload_part_size arg`:在分块上传到 S3 时,分块的最大大小。
- `--s3_upload_part_size_multiply_factor arg`:每次上传 `s3_multiply_parts_count_threshold` 个分块后,将 `s3_min_upload_part_size` 乘以该因子。
- `--s3_upload_part_size_multiply_parts_count_threshold arg`:每次上传该数量的分块后,将 `s3_min_upload_part_size` 乘以 `s3_upload_part_size_multiply_factor`。
- `--s3_max_inflight_parts_for_one_file arg`:在分块上传请求中,每个文件的最大并发加载分块数。`0` 表示无限制。您可以在 S3 中使用此设置。
- `--s3_max_single_part_upload_size arg`:使用单分块上传到 S3 的对象的最大大小。
- `--azure_max_single_part_upload_size arg`:使用单分块上传到 Azure Blob 存储的对象的最大大小。
- `--s3_max_single_read_retries arg`:在 S3 中单次读取的最大重试次数。
- `--azure_max_single_read_retries arg`:在 Azure Blob 存储中单次读取的最大重试次数。
- `--s3_max_unexpected_write_error_retries arg`:在 S3 写入时遇到意外错误的最大重试次数。
- `--s3_max_redirects arg`:S3 重定向的最大跳数。
- `--s3_max_connections arg`:每个服务器的最大连接数。
- `--s3_max_get_rps arg`:在 S3 GET 请求之前限制每秒速率(单位:次/秒)。`0` 表示无限制。
- `--s3_max_get_burst arg`:在达到每秒请求限制之前,可以同时发出的最大请求数。默认值(`0`)等于 `s3_max_get_rps`。
- `--s3_max_put_rps arg`:在 S3 PUT 请求之前限制每秒速率(单位:次/秒)。`0` 表示无限制。
- `--s3_max_put_burst arg`:在达到每秒请求限制之前,可以同时发出的最大请求数。默认值(`0`)等于 `s3_max_put_rps`。
- `--s3_list_object_keys_size arg`:`ListObject` 请求一次返回的最大文件数。
- `--azure_list_object_keys_size arg`:`ListObject` 请求一次返回的最大文件数。
- `--s3_truncate_on_insert arg`:启用或禁用在 S3 引擎表中插入前截断。
- `--azure_truncate_on_insert arg`:启用或禁用在 Azure 引擎表中插入前截断。
- `--s3_create_new_file_on_insert arg`:启用或禁用在 S3 引擎表中每次插入时创建新文件。
- `--s3_skip_empty_files arg`:允许在 S3 表引擎中跳过空文件。
- `--azure_create_new_file_on_insert arg`:启用或禁用在 Azure 引擎表中每次插入时创建新文件。
- `--s3_check_objects_after_upload arg`:在上传到 S3 后,使用 `HEAD` 请求检查每个对象,以确保上传成功。
- `--s3_allow_parallel_part_upload arg`:在 S3 分块上传中使用多个线程。这可能会略微增加内存使用量。
- `--s3_throw_on_zero_files_match arg`:如果 `ListObjects` 请求无法匹配任何文件,则抛出错误。
- `--s3_retry_attempts arg`:设置 Aws::Client::RetryStrategy 的重试次数。Aws::Client 会自动重试,`0` 表示不重试。
- `--s3_request_timeout_ms arg`:发送和接收 S3 数据的空闲超时时间(单位:毫秒)。如果单个 TCP 读取或写入调用阻塞了这么长时间,则会失败。
- `--s3_http_connection_pool_size arg`:每个 S3 端点保留的可复用连接数。此设置仅适用于 S3 表引擎和表函数,不适用于 S3 磁盘(磁盘配置中使用)。这是一个全局设置,只能在配置文件中设置,覆盖它对会话或查询没有作用。
- `--enable_s3_requests_logging arg`:启用对 S3 请求的详细日志记录。仅用于调试。
- `--s3queue_default_zookeeper_path arg`:S3Queue 引擎的默认 Zookeeper 路径前缀。
- `--hdfs_replication arg`:在创建 HDFS 文件时指定的实际副本数。
- `--hdfs_truncate_on_insert arg`:启用或禁用在 S3 引擎表中插入前截断。
- `--hdfs_create_new_file_on_insert arg`:启用或禁用在 HDFS 引擎表中每次插入时创建新文件。
- `--hdfs_skip_empty_files arg`:允许在 HDFS 表引擎中跳过空文件。
- `--hsts_max_age arg`:HSTS 的过期时间(单位:秒)。`0` 表示禁用 HSTS。
- `--extremes arg`:计算结果列的最小值和最大值。它们可以以 JSON 格式输出。
- `--use_uncompressed_cache arg`:是否使用未压缩块的缓存。
- `--replace_running_query arg`:是否取消具有相同 ID 的正在运行的请求。
- `--max_remote_read_network_bandwidth arg`:远程读取的最大网络速度(单位:字节/秒)。
- `--max_remote_write_network_bandwidth arg`:远程写入的最大网络速度(单位:字节/秒)。
- `--max_local_read_bandwidth arg`:本地读取的最大速度(单位:字节/秒)。
- `--max_local_write_bandwidth arg`:本地写入的最大速度(单位:字节/秒)。
- `--stream_like_engine_allow_direct_select arg`:允许对 Kafka、RabbitMQ、FileLog、Redis Streams 和 NATS 引擎直接执行 `SELECT` 查询。如果存在附加的物化视图,则即使启用此设置,也不允许直接执行 `SELECT` 查询。
- `--stream_like_engine_insert_queue arg`:当流式引擎从多个队列中读取时,用户需要选择一个队列进行写入,用于 Redis Streams 和 NATS。
- `--distributed_directory_monitor_sleep_time_ms arg`:StorageDistributed DirectoryMonitors 的睡眠时间,如果出现错误,延迟会呈指数增长。
- `--distributed_directory_monitor_max_sleep_time_ms arg`:StorageDistributed DirectoryMonitors 的最大睡眠时间,限制指数增长。
- `--distributed_directory_monitor_batch_inserts arg`:StorageDistributed DirectoryMonitors 是否尝试将单独的插入批量处理成更大的插入。
- `--distributed_directory_monitor_split_batch_on_failure arg`:StorageDistributed DirectoryMonitors 是否在失败时尝试将批量拆分为更小的批次。
- `--optimize_move_to_prewhere arg`:允许将 `WHERE` 中的部分条件移动到 `PREWHERE`。
- `--optimize_move_to_prewhere_if_final arg`:如果查询中包含 `FINAL`,则只有在同时启用 `optimize_move_to_prewhere` 和 `optimize_move_to_prewhere_if_final` 时,才会启用 `move_to_prewhere` 优化。
- `--move_all_conditions_to_prewhere arg`:将 `WHERE` 中的所有可行条件移动到 `PREWHERE`。
- `--enable_multiple_prewhere_read_steps arg`:将更多条件从 `WHERE` 移动到 `PREWHERE`,并在多个步骤中进行磁盘读取和过滤,如果 `AND` 连接的条件有多个。
- `--move_primary_key_columns_to_end_of_prewhere arg`:将包含主键列的 `PREWHERE` 条件移到 `AND` 链的末尾。这些条件可能已在主键分析中被考虑,因此对 `PREWHERE` 过滤的贡献不大。
- `--alter_sync arg`:等待对分区的操作完成。`0` - 不等待;`1` - 等待自身执行完成;`2` - 等待所有操作完成。
- `--replication_alter_partitions_sync arg`:等待对分区的操作完成。`0` - 不等待;`1` - 等待自身执行完成;`2` - 等待所有操作完成。
- `--replication_wait_for_inactive_replica_timeout arg`:等待非活动副本执行 `ALTER` 或 `OPTIMIZE` 的时间(单位:秒)。`0` - 不等待;负值 - 无限等待。
- `--load_balancing arg`:在分布式处理中,优先将查询发送到哪些副本(从健康副本中选择)。
- `--load_balancing_first_offset arg`:当使用 `FIRST_OR_RANDOM` 负载均衡策略时,优先发送查询的副本偏移量。
- `--totals_mode arg`:在存在 `HAVING` 子句时,以及在 `max_rows_to_group_by` 和 `group_by_overflow_mode = 'any'` 的情况下,如何计算 `TOTALS`。
- `--totals_auto_threshold arg`:`totals_mode = 'auto'` 的阈值。
- `--allow_suspicious_low_cardinality_types arg`:在 `CREATE TABLE` 语句中,允许为小固定大小(8 字节或更少)的类型指定 `LowCardinality` 修饰符。启用此选项可能会增加合并时间和内存消耗。
- `--allow_suspicious_fixed_string_types arg`:在 `CREATE TABLE` 语句中,允许创建长度大于 256 的 `FixedString(n)` 类型。长度大于或等于 256 的 `FixedString` 是可疑的,很可能表示误用。
- `--allow_suspicious_indices arg`:拒绝具有相同表达式的主键/二级索引和排序键。
- `--compile_expressions arg`:将某些标量函数和运算符编译为原生代码。
- `--min_count_to_compile_expression arg`:在 JIT 编译之前,相同的表达式出现的最小次数。
- `--compile_aggregate_expressions arg`:将聚合函数编译为原生代码。
- `--min_count_to_compile_aggregate_expression arg`:在 JIT 编译之前,相同的聚合表达式出现的最小次数。
- `--compile_sort_description arg`:将排序描述编译为原生代码。
- `--min_count_to_compile_sort_description arg`:在 JIT 编译之前,相同的排序描述出现的最小次数。
- `--group_by_two_level_threshold arg`:从多少个键开始使用两级聚合。`0` 表示未设置阈值。
- `--group_by_two_level_threshold_bytes arg`:从多少字节的聚合状态大小开始使用两级聚合。`0` 表示未设置阈值。如果达到这两个阈值中的任何一个,则会使用两级聚合。
- `--distributed_aggregation_memory_efficient arg`:是否启用分布式聚合的内存节省模式。
- `--aggregation_memory_efficient_merge_threads arg`:在内存节省模式下,用于合并中间聚合结果的线程数。如果值较大,则会使用更多内存。`0` 表示与 `max_threads` 相同。
- `--enable_memory_bound_merging_of_aggregation_results arg`:启用聚合结果的内存限制合并策略。
- `--enable_positional_arguments arg`:在 `ORDER BY`、`GROUP BY` 和 `LIMIT BY` 中启用位置参数。
- `--enable_extended_results_for_datetime_functions arg`:启用日期函数,例如 `toLastDayOfMonth` 返回 `Date32` 结果(而不是 `Date` 结果),对于 `Date32` 或 `DateTime64` 参数。
- `--allow_nonconst_timezone_arguments arg`:允许在某些时间相关函数中使用非常量时区参数,例如 `toTimeZone()`、`fromUnixTimestamp*()`、`snowflakeToDateTime*()`。
- `--group_by_use_nulls arg`:在 `ROLLUP`、`CUBE` 或 `GROUPING SETS` 中将列视为 `Nullable`。
- `--max_parallel_replicas arg`:在执行查询时,每个分片的最大副本数。此选项仅在指定采样键时有效,用于获取不同分区的数据。副本的滞后性不受控制。
- `--parallel_replicas_count arg`:这是内部设置,不应直接使用,表示“并行副本”模式的实现细节。此设置将由分布式查询的发起服务器自动设置为参与查询处理的并行副本数量。
- `--parallel_replica_offset arg`:这是内部设置,不应直接使用,表示“并行副本”模式的实现细节。此设置将由分布式查询的发起服务器自动设置为当前副本在并行副本中的索引。
- `--parallel_replicas_custom_key arg`:在使用并行副本时,为副本分配工作的自定义键。
- `--parallel_replicas_custom_key_filter_type arg`:与自定义键一起使用的过滤器类型。默认值为对自定义键使用模运算,`range` 表示对自定义键的所有可能值使用范围过滤。
- `--cluster_for_parallel_replicas arg`:当前服务器所在的分片的集群。
- `--allow_experimental_parallel_reading_from_replicas arg`:在 SELECT 查询执行中使用分片的所有副本。读取操作并行化并动态协调。`0` - 禁用;`1` - 启用,如果失败则静默禁用;`2` - 启用,失败时抛出异常。
- `--parallel_replicas_single_task_marks_count_multiplier arg`:在计算从协调器获取的最小标记数时,添加的乘数因子。此设置仅适用于远程副本。
- `--parallel_replicas_for_non_replicated_merge_tree arg`:如果为 `true`,ClickHouse 也会对非复制的 MergeTree 表使用并行副本算法。
- `--parallel_replicas_min_number_of_granules_to_enable arg`:如果要读取的标记数少于该值,则禁用并行副本。
- `--skip_unavailable_shards arg`:如果为 `true`,ClickHouse 会静默跳过不可用的分片和通过 DNS 解析失败的节点。如果分片的所有副本都无法连接,则分片被视为不可用。
- `--parallel_distributed_insert_select arg`:在同一个集群的本地表上处理分布式 `INSERT SELECT` 查询;如果设置为 `1`,则在每个分片上执行 `SELECT`;如果设置为 `2`,则在每个分片上执行 `SELECT` 和 `INSERT`。
- `--distributed_group_by_no_merge arg`:如果为 `1`,则不对分布式查询的分片进行聚合状态的合并(分片将处理查询到 `Complete` 阶段,发起服务器仅代理分片的数据)。如果为 `2`,则发起服务器将应用 `ORDER BY` 和 `LIMIT` 阶段(在分片处理查询到 `Complete` 阶段的情况下不会这样)。
- `--distributed_push_down_limit arg`:如果为 `1`,则在每个分片上分别应用 `LIMIT`。通常您不需要使用它,因为如果可能(例如,对于简单的查询 `SELECT FROM LIMIT`),它会自动完成。
- `--optimize_distributed_group_by_sharding_key arg`:优化基于 `sharding_key` 的 `GROUP BY` 查询(通过避免在发起服务器上进行昂贵的聚合)。
- `--optimize_skip_unused_shards_limit arg`:跳过未使用分片的限制,如果达到该限制,则关闭 `optimize_skip_unused_shards`。
- `--optimize_skip_unused_shards arg`:假设数据通过 `sharding_key` 分布。优化 SELECT 查询,通过 `sharding_key` 过滤掉未使用的分片。
- `--optimize_skip_unused_shards_rewrite_in arg`:在远程分片中重写查询中的 `IN`,以排除不属于该分片的值(需要启用 `optimize_skip_unused_shards`)。
- `--allow_nondeterministic_optimize_skip_unused_shards arg`:允许在 `sharding_key` 中使用非确定性函数(包括 `dictGet`)进行 `optimize_skip_unused_shards`。
- `--force_optimize_skip_unused_shards arg`:如果无法跳过未使用的分片,则抛出异常(`1` - 如果表有 `sharding_key`,则抛出异常;`2` - 总是抛出异常)。
- `--optimize_skip_unused_shards_nesting arg`:与 `optimize_skip_unused_shards` 类似,但接受嵌套级别,直到其生效。
- `--force_optimize_skip_unused_shards_nesting arg`:与 `force_optimize_skip_unused_shards` 类似,但接受嵌套级别,直到其生效。
- `--input_format_parallel_parsing arg`:启用某些数据格式的并行解析。
- `--min_chunk_bytes_for_parallel_parsing arg`:并行解析时,每个线程解析的最小块大小(单位:字节)。
- `--output_format_parallel_formatting arg`:启用某些数据格式的并行格式化。
- `--merge_tree_min_rows_for_concurrent_read arg`:如果从一个文件中至少读取这么多行,则可以并行化读取。
- `--merge_tree_min_bytes_for_concurrent_read arg`:如果从一个文件中至少读取这么多字节,则可以并行化读取。
- `--merge_tree_min_rows_for_seek arg`:您可以跳过每个文件中这么多行的读取,代价是一个寻道操作。
- `--merge_tree_min_bytes_for_seek arg`:您可以跳过每个文件中这么多字节的读取,代价是一个寻道操作。
- `--merge_tree_coarse_index_granularity arg`:如果索引段可以包含所需的键,则将其分成多个部分,并递归检查它们。
- `--merge_tree_max_rows_to_use_cache arg`:在请求中使用未压缩数据缓存的最大行数。如果请求较大,则不使用缓存(以防止大查询清空缓存)。
- `--merge_tree_max_bytes_to_use_cache arg`:在请求中使用未压缩数据缓存的最大字节数。如果请求较大,则不使用缓存(以防止大查询清空缓存)。
- `--do_not_merge_across_partitions_select_final arg`:在 `SELECT FINAL` 中,仅在单个分区中合并部分。
- `--allow_experimental_inverted_index arg`:如果设置为 `true`,允许使用实验性的倒排索引。
- `--mysql_max_rows_to_insert arg`:MySQL 存储引擎的 MySQL 批量插入的最大行数。
- `--use_mysql_types_in_show_columns arg`:在通过 MySQL 兼容性连接时,使用 MySQL 转换的类型显示列。
- `--optimize_min_equality_disjunction_chain_length arg`:优化表达式 `expr = x1 OR ... expr = xN` 的最小长度。
- `--min_bytes_to_use_direct_io arg`:在 SELECT 查询执行期间,使用 O_DIRECT 选项读取数据的最小字节数。`0` 表示禁用。
- `--min_bytes_to_use_mmap_io arg`:在 SELECT 查询执行期间,使用 mmap 选项读取数据的最小字节数。`0` 表示禁用。
- `--checksum_on_read arg`:在读取时验证校验和。默认情况下启用,并且在生产环境中应始终启用。请不要期望在禁用此设置时获得任何好处。它仅用于实验和基准测试。此设置仅适用于 MergeTree 系列表。对于其他表引擎以及通过网络接收数据的情况,始终会验证校验和。
- `--force_index_by_date arg`:如果表中有分区键,但未使用,则抛出异常。
- `--force_primary_key arg`:如果表中有主键,但未使用,则抛出异常。
- `--use_skip_indexes arg`:在查询执行期间使用数据跳过索引。
- `--use_skip_indexes_if_final arg`:如果查询中包含 `FINAL`,则基于索引跳过数据可能会产生错误结果,因此默认情况下禁用。
- `--ignore_data_skipping_indices arg`:在查询执行期间需要排除的数据跳过索引的名称列表(以逗号分隔的字符串或字面量)。
- `--force_data_skipping_indices arg`:在查询执行期间必须使用的数据跳过索引的名称列表(以逗号分隔的字符串或字面量),否则会抛出异常。
- `--max_streams_to_max_threads_ratio arg`:允许使用的源数量超过线程数量,以便更均匀地分配工作到线程中。假设这是一个临时解决方案,因为将来可以在每个源动态选择可用工作,而不仅仅是将源数量与线程数量对齐。
- `--max_streams_multiplier_for_merge_tables arg`:在读取 Merge 表时请求更多流。这些流将在 Merge 表使用的表之间分配。这有助于更均匀地分配工作到线程中,尤其是当合并的表大小不同时。
- `--network_compression_method arg`:允许选择写入时的数据压缩方法。
- `--network_zstd_compression_level arg`:允许选择 ZSTD 压缩的级别。
- `--zstd_window_log_max arg`:允许选择 ZSTD 的最大窗口日志大小(它不会用于 MergeTree 系列表)。
- `--priority arg`:查询的优先级。`1` - 最高优先级,值越高优先级越低;`0` - 不使用优先级。
- `--os_thread_priority arg`:如果非零,则为查询处理线程设置相应的 `nice` 值。可以用于调整线程的优先级,以便操作系统调度器可以使用。
- `--log_queries arg`:记录请求并将日志写入系统表。
- `--log_formatted_queries arg`:记录格式化的查询并将日志写入系统表。
- `--log_queries_min_type arg`:查询日志中记录的最小类型,可能的值(从低到高):`QUERY_START`、`QUERY_FINISH`、`EXCEPTION_BEFORE_START`、`EXCEPTION_WHILE_PROCESSING`。
- `--log_queries_min_query_duration_ms arg`:查询运行的最小时间,以进入 `query_log`、`query_thread_log` 和 `query_views_log`。
- `--log_queries_cut_to_length arg`:如果查询长度大于指定的阈值(单位:字节),则在写入查询日志时截断查询。同时限制在普通文本日志中打印的查询长度。
- `--log_queries_probability arg`:以指定的概率记录查询。
- `--log_processors_profiles arg`:记录处理器的性能事件。
- `--distributed_product_mode arg`:在 `IN` 或 `JOIN` 子句中如何执行分布式子查询。
- `--max_concurrent_queries_for_all_users arg`:所有用户的最大并发请求数。
- `--max_concurrent_queries_for_user arg`:每个用户的最大并发请求数。
- `--insert_deduplicate arg`:对于复制表的 `INSERT` 查询,指定是否对插入的数据块进行去重。
- `--async_insert_deduplicate arg`:对于异步 `INSERT` 查询,在复制表中指定是否对插入的数据块进行去重。
- `--insert_quorum arg`:对于复制表的 `INSERT` 查询,等待写入指定数量的副本并线性化数据的添加。`0` - 禁用;`auto` - 使用多数派。
- `--insert_quorum_timeout arg`:如果在指定时间内(单位:毫秒)未达到副本的法定数量,则抛出异常并中止插入。
- `--insert_quorum_parallel arg`:对于法定数量的 `INSERT` 查询,启用并行插入而不保证线性一致性。
- `--select_sequential_consistency arg`:对于从复制表的 `SELECT` 查询,如果副本没有以法定数量写入的块,则抛出异常;不读取尚未以法定数量写入的块。
- `--table_function_remote_max_addresses arg`:`remote` 函数中分片的最大数量和一个分片的最大副本数。
- `--read_backoff_min_latency_ms arg`:设置在读取速度较慢时减少线程数量的最小延迟时间(单位:毫秒)。仅关注至少花费这么长时间的读取操作。
- `--read_backoff_max_throughput arg`:设置在读取速度较慢时减少线程数量的最大吞吐量(单位:字节/秒)。统计每秒读取的字节数是否低于该值。
- `--read_backoff_min_interval_between_events_ms arg`:设置在读取速度较慢时减少线程数量的最小事件间隔时间(单位:毫秒)。如果上一个事件的时间间隔小于该值,则忽略该事件。
- `--read_backoff_min_events arg`:设置在读取速度较慢时减少线程数量所需的最小事件数。
- `--read_backoff_min_concurrency arg`:尝试在读取速度较慢时保持的最小并发线程数。
- `--memory_tracker_fault_probability arg`:在测试 `exception safety` 时,每次分配内存时以指定的概率抛出异常。
- `--enable_http_compression arg`:如果客户端通过 HTTP 表示理解 gzip、deflate、zstd、br、lz4、bz2、xz 等压缩格式,则对结果进行压缩。
- `--http_zlib_compression_level arg`:如果客户端通过 HTTP 表示理解 gzip 或 deflate 压缩,则使用该压缩级别。
- `--http_native_compression_disable_checksumming_on_decompress arg`:如果以原生格式解压缩来自客户端的 POST 数据,则不检查校验和。
- `--count_distinct_implementation arg`:用于实现 `count(DISTINCT ...)` 的聚合函数。
- `--add_http_cors_header arg`:添加 HTTP CORS 标头。
- `--max_http_get_redirects arg`:HTTP GET 重定向的最大跳数。确保额外的安全措施,以防止恶意服务器将您的请求重定向到意外的服务。
- `--use_client_time_zone arg`:使用客户端时区解释 DateTime 字符串值,而不是采用服务器时区。
- `--send_progress_in_http_headers arg`:使用 X-ClickHouse-Progress 标头发送进度通知。某些客户端(例如 Python requests)不支持大量 HTTP 标头,因此默认情况下禁用。
- `--http_headers_progress_interval_ms arg`:不要比指定的间隔更频繁地发送 X-ClickHouse-Progress 标头(单位:毫秒)。
- `--http_wait_end_of_query arg`:启用服务器端的 HTTP 响应缓冲。
- `--http_write_exception_in_output_format arg`:将异常写入输出格式以生成有效的输出。适用于 JSON 和 XML 格式。
- `--http_response_buffer_size arg`:在将 HTTP 响应发送给客户端或刷新到磁盘之前,在服务器内存中缓冲的字节数(当启用 `http_wait_end_of_query` 时)。
- `--fsync_metadata arg`:在更改表和数据库的元数据(.sql 文件)后执行 fsync。如果服务器负载较高且 DDL 查询频繁,可能会导致高延迟,可以禁用此设置。
- `--join_use_nulls arg`:对于外连接的非连接行,使用 NULL 值(对于可以包含在 Nullable 中的类型)。如果为 `false`,则使用对应列数据类型的默认值。
- `--join_default_strictness arg`:设置 JOIN 查询的默认严格性。可能的值为空字符串、`ANY` 或 `ALL`。如果为空,则不支持没有严格性指定的查询。
- `--any_join_distinct_right_table_keys arg`:启用旧的 ANY JOIN 逻辑,其中左表到右表的表键映射为多对一。这会导致 `t1 ANY LEFT JOIN t2` 和 `t2 ANY RIGHT JOIN t1` 的结果不一致。ANY RIGHT JOIN 需要一对一的键映射,以与 LEFT JOIN 保持一致。
- `--single_join_prefer_left_table arg`:在单个 JOIN 中,如果存在标识符歧义,则优先使用左表。
- `--preferred_block_size_bytes arg`:此设置调整查询处理中的数据块大小,是对更粗糙的 `max_block_size` 设置的额外微调。如果列数据较大,并且以 `max_block_size` 行的大小计算,块大小可能会大于指定的字节数,其大小将被降低以提高 CPU 缓存局部性。
- `--max_replica_delay_for_distributed_queries arg`:如果设置,分布式查询的复制表将选择复制延迟小于指定值(单位:秒)的服务器(不包括)。`0` 表示不考虑延迟。
- `--fallback_to_stale_replicas_for_distributed_queries arg`:假设设置了 `max_replica_delay_for_distributed_queries`,并且查询表的所有副本都是过期的。如果启用此设置,则仍然执行查询,否则会报告错误。
- `--preferred_max_column_in_block_size_bytes arg`:限制在读取时块中最大列的大小。有助于减少缓存未命中次数。应接近 L2 缓存大小。
- `--parts_to_delay_insert arg`:如果目标表在单个分区中至少有这么多活动部分,则人为地减慢插入到表的速度。
- `--parts_to_throw_insert arg`:如果目标表在单个分区中有超过此数量的活动部分,则抛出“太多部分...”异常。
- `--number_of_mutations_to_delay arg`:如果已变异的表至少有这么多未完成的变异,则人为地减慢表的变异速度。`0` 表示禁用。
- `--number_of_mutations_to_throw arg`:如果已变异的表中有超过此数量的未完成变异,则抛出“太多变异...”异常。`0` 表示禁用。
- `--insert_distributed_sync arg`:如果启用,插入分布式表将等待数据发送到集群中的所有节点。
- `--insert_distributed_timeout arg`:插入分布式表的超时时间。仅在启用 `insert_distributed_sync` 时使用。`0` 表示无超时。
- `--distributed_ddl_task_timeout arg`:DDL 查询从集群中所有主机的响应超时时间。如果 DDL 请求未在所有主机上完成,则响应将包含超时错误,并且请求将以异步模式执行。负值表示无限。`0` 表示异步模式。
- `--stream_flush_interval_ms arg`:流式存储的刷新超时时间(单位:毫秒)。
- `--stream_poll_timeout_ms arg`:从流式存储中轮询数据的超时时间(单位:毫秒)。
- `--final arg`:默认情况下使用 `FINAL` 修饰符的查询。如果引擎不支持 `FINAL`,则没有效果。在涉及多个表的查询中,仅对支持它的表应用 `FINAL`。它也适用于分布式表。
- `--partial_result_on_first_cancel arg`:允许查询在取消后返回部分结果。
- `--allow_experimental_partial_result arg`:启用实验性功能:为正在运行的查询返回部分结果。
- `--partial_result_update_duration_ms arg`:在交互模式下,向客户端发送有关结果表的部分数据更新的时间间隔(单位:毫秒)。在查询执行期间,此设置为 `0` 表示禁用部分结果。仅支持单线程的 `GROUP BY`(无键)、`ORDER BY`、`LIMIT` 和 `OFFSET`。
- `--max_rows_in_partial_result arg`:在每个实时更新后,部分结果中显示的最大行数(如果查询中有 `OFFSET`,则使用 `OFFSET + 部分结果限制` 作为值)。
- `--ignore_on_cluster_for_replicated_udf_queries arg`:忽略复制 UDF 管理查询中的 `ON CLUSTER` 子句。
- `--ignore_on_cluster_for_replicated_access_entities_queries arg`:忽略复制访问实体管理查询中的 `ON CLUSTER` 子句。
- `--sleep_in_send_tables_status_ms arg`:在 TCPHandler 中发送表状态响应时的睡眠时间。
- `--sleep_in_send_data_ms arg`:在 TCPHandler 中发送数据时的睡眠时间。
- `--sleep_after_receiving_query_ms arg`:在 TCPHandler 中接收查询后的睡眠时间。
- `--unknown_packet_in_send_data arg`:在发送数据时,每隔 N 个数据包发送一个未知数据包。
- `--insert_allow_materialized_columns arg`:如果启用,允许在 `INSERT` 中使用物化列。
- `--http_connection_timeout arg`:HTTP 连接超时时间。
- `--http_send_timeout arg`:HTTP 发送超时时间。
- `--http_receive_timeout arg`:HTTP 接收超时时间。
- `--http_max_uri_size arg`:HTTP 请求 URI 的最大长度。
- `--http_max_fields arg`:HTTP 标头中的最大字段数。
- `--http_max_field_name_size arg`:HTTP 标头中字段名称的最大长度。
- `--http_max_field_value_size arg`:HTTP 标头中字段值的最大长度。
- `--http_max_chunk_size arg`:HTTP 分块传输编码中的最大块大小。
- `--http_skip_not_found_url_for_globs arg`:跳过因 HTTP_NOT_FOUND 错误而无法匹配的 URL 通配符。
- `--optimize_throw_if_noop arg`:如果启用,并且 `OPTIMIZE` 查询实际上没有执行合并,则抛出解释性异常。
- `--use_index_for_in_with_subqueries arg`:如果 `IN` 的右侧是子查询或表表达式,则尝试使用索引。
- `--use_index_for_in_with_subqueries_max_values arg`:在 `IN` 的右侧使用表索引进行过滤的最大集合大小。它允许避免因准备额外数据结构而导致性能下降和内存使用增加,因为对于大型查询,这可能会导致问题。`0` 表示无限制。
- `--joined_subquery_requires_alias arg`:强制要求连接的子查询和表函数具有别名,以便正确进行名称限定。
- `--empty_result_for_aggregation_by_empty_set arg`:在没有键的情况下进行聚合时返回空结果。
- `--empty_result_for_aggregation_by_constant_keys_on_empty_set arg`:在空集合上按常量键进行聚合时返回空结果。
- `--allow_distributed_ddl arg`:如果设置为 `true`,则允许用户执行分布式 DDL 查询。
- `--allow_suspicious_codecs arg`:如果设置为 `true`,允许指定无意义的压缩编解码器。
- `--allow_experimental_codecs arg`:如果设置为 `true`,允许指定实验性的压缩编解码器(但目前我们还没有这些,此选项没有实际作用)。
- `--enable_deflate_qpl_codec arg`:启用/禁用 DEFLATE_QPL 编解码器。
- `--query_profiler_real_time_period_ns arg`:查询分析器的实时时钟周期(单位:纳秒)。将 `0` 设置为关闭实时时钟查询分析器。推荐值为至少每秒 100 次(单个查询)或每秒 1 次(集群范围分析)。
- `--query_profiler_cpu_time_period_ns arg`:查询分析器的 CPU 时钟周期(单位:纳秒)。将 `0` 设置为关闭 CPU 时钟查询分析器。推荐值为至少每秒 100 次(单个查询)或每秒 1 次(集群范围分析)。
- `--metrics_perf_events_enabled arg`:如果启用,将在查询执行期间测量某些 perf 事件。
- `--metrics_perf_events_list arg`:在查询执行期间测量的 perf 指标列表。空值表示测量所有事件。有关可用事件,请参阅 PerfEventInfo。
- `--opentelemetry_start_trace_probability arg`:为传入查询启动 OpenTelemetry 跟踪的概率。
- `--opentelemetry_trace_processors arg`:为处理器收集 OpenTelemetry 跨度。
- `--prefer_column_name_to_alias arg`:如果可能,优先使用列名而不是别名。
- `--allow_experimental_analyzer arg`:允许使用实验性分析器。
- `--prefer_global_in_and_join arg`:如果启用,所有 `IN` 和 `JOIN` 操作符都将被重写为 `GLOBAL IN` 和 `GLOBAL JOIN`。当需要在分布式处理中动态散列数据时(使用 `GLOBAL` 关键字),这非常有用。它还可以减少访问外部源连接外部表的需求。
- `--max_rows_to_read arg`:从最“深层”的源中读取的最大行数限制。也就是说,仅在最深层的子查询中适用。在从远程服务器读取时,仅在远程服务器上检查。
- `--max_bytes_to_read arg`:从最“深层”的源中读取的最大字节数限制(解压缩后)。也就是说,仅在最深层的子查询中适用。在从远程服务器读取时,仅在远程服务器上检查。
- `--read_overflow_mode arg`:当超出限制时的行为。
- `--max_rows_to_read_leaf arg`:在分布式查询中,对叶子节点的本地读取的最大行数限制。该限制仅适用于本地读取,不包括根节点上的最终合并阶段。
- `--max_bytes_to_read_leaf arg`:在分布式查询中,对叶子节点的本地读取的最大字节数限制(解压缩后)。该限制仅适用于本地读取,不包括根节点上的最终合并阶段。
- `--read_overflow_mode_leaf arg`:当超出叶子节点限制时的行为。
- `--max_rows_to_group_by arg`:如果在 `GROUP BY` 操作中生成的聚合键数量超过指定值,则根据 `group_by_overflow_mode` 决定行为,默认情况下会抛出异常,但也可以切换到近似的 `GROUP BY` 模式。
- `--group_by_overflow_mode arg`:当超出限制时的行为。
- `--max_bytes_before_external_group_by arg`:如果在 `GROUP BY` 操作中的内存使用量超过该字节阈值,则激活“外部聚合”模式(将数据溢写到磁盘)。推荐值为系统可用内存的一半。
- `--max_rows_to_sort arg`:如果需要处理的排序记录数超过指定值,则根据 `sort_overflow_mode` 决定行为,默认情况下会抛出异常。
- `--max_bytes_to_sort arg`:如果需要处理的排序字节数(解压缩后)超过指定值,则根据 `sort_overflow_mode` 决定行为,默认情况下会抛出异常。
- `--sort_overflow_mode arg`:当超出限制时的行为。
- `--max_bytes_before_external_sort arg`:如果在 `ORDER BY` 操作中的内存使用量超过该字节阈值,则激活“外部排序”模式(将数据溢写到磁盘)。推荐值为系统可用内存的一半。
- `--max_bytes_before_remerge_sort arg`:在 `ORDER BY` 操作中,如果内存使用量超过该阈值,则在最终合并之前执行额外的合并步骤,以仅保留顶部 `LIMIT` 行。
- `--remerge_sort_lowered_memory_bytes_ratio arg`:如果重新合并后的内存使用量未降低到该比例,则禁用重新合并。
- `--max_result_rows arg`:结果大小的最大行数限制。查询将在处理一个数据块后停止,但如果最后一个数据块的大小超过阈值,则不会截断最后一个数据块,因此实际结果大小可能大于阈值。
- `--max_result_bytes arg`:结果大小的最大字节数限制(解压缩后)。查询将在处理一个数据块后停止,但如果最后一个数据块的大小超过阈值,则不会截断最后一个数据块,因此实际结果大小可能大于阈值。注意:此设置考虑了结果在内存中的大小。即使结果大小较小,它也可能引用内存中更大的数据结构,例如 LowCardinality 列的字典以及 AggregateFunction 列的 Arena,因此可能会超出阈值。此设置较为底层,应谨慎使用。
- `--result_overflow_mode arg`:当超出限制时的行为。
- `--max_execution_time arg`:如果查询运行时间超过指定的秒数,则根据 `timeout_overflow_mode` 决定行为,默认情况下会抛出异常。注意:超时仅在查询处理的特定阶段检查,因此实际运行时间可能会超过该设置值。
- `--timeout_overflow_mode arg`:当超出限制时的行为。
- `--min_execution_speed arg`:最小执行行数/秒。
- `--max_execution_speed arg`:最大执行行数/秒。
- `--min_execution_speed_bytes arg`:最小执行字节数/秒。
- `--max_execution_speed_bytes arg`:最大执行字节数/秒。
- `--timeout_before_checking_execution_speed arg`:在检查速度是否过低之前等待的时间(单位:秒)。
- `--max_columns_to_read arg`:如果查询需要读取的列数超过指定值,则抛出异常。`0` 表示无限制。此设置可用于防止查询过于复杂。
- `--max_temporary_columns arg`:如果查询在内存中生成的临时列数超过指定值,则抛出异常。`0` 表示无限制。此设置可用于防止查询过于复杂。
- `--max_temporary_non_const_columns arg`:与 `max_temporary_columns` 类似,但仅适用于非常量列。这很有意义,因为常量列的代价较低,允许更多的常量列是合理的。
- `--max_sessions_for_user arg`:一个用户的最大同时会话数。
- `--max_subquery_depth arg`:如果查询的嵌套子查询数量超过指定值,则抛出异常。这允许您对用户的查询进行限制,以防止他们过于复杂。
- `--max_analyze_depth arg`:解释器执行的最大分析次数。
- `--max_ast_depth arg`:查询语法树的最大深度。在解析后进行检查。
- `--max_ast_elements arg`:查询语法树的最大节点数。在解析后进行检查。
- `--max_expanded_ast_elements arg`:在展开别名和星号后,查询语法树的最大节点数。
- `--readonly arg`:`0` - 无只读限制;`1` - 仅允许读取请求,以及显式允许的设置更改;`2` - 仅允许读取请求,以及除 `readonly` 设置外的所有设置更改。
- `--max_rows_in_set arg`:`IN` 子句执行结果的最大集合大小(以元素数量计)。
- `--max_bytes_in_set arg`:`IN` 子句执行结果的最大集合大小(以内存中的字节数计)。
- `--set_overflow_mode arg`:当超出限制时的行为。
- `--max_rows_in_join arg`:`JOIN` 操作中哈希表的最大行数。
- `--max_bytes_in_join arg`:`JOIN` 操作中哈希表的最大字节数(以内存中的字节数计)。
- `--join_overflow_mode arg`:当超出限制时的行为。
- `--join_any_take_last_row arg`:如果禁用(默认值),`ANY JOIN` 将取找到的第一个键对应的行;如果启用,则在同一个键有多行时,取最后看到的行。
- `--join_algorithm arg`:指定连接算法。
- `--default_max_bytes_in_join arg`:如果需要限制但未设置 `max_bytes_in_join`,则右表的最大大小。
- `--partial_merge_join_left_table_buffer_bytes arg`:如果不为 `0`,则在部分合并连接中,将左表的块合并为更大的块。这将使用每个连接线程最多 `2x` 指定的内存。
- `--partial_merge_join_rows_in_right_blocks arg`:将右侧连接数据分割为指定大小的块。这些块将根据最小值和最大值进行索引,并且可能会被卸载到磁盘上。
- `--join_on_disk_max_files_to_merge arg`:对于磁盘上的 MergeJoin,允许同时排序的最大文件数。该值越大,使用的内存越多,但磁盘 I/O 需求越少。最小值为 `2`。
- `--max_rows_in_set_to_optimize_join arg`:最大集合大小,用于在连接之前通过行集过滤彼此的连接表。`0` 表示禁用。
- `--compatibility_ignore_collation_in_create_table arg`:在创建表时忽略排序规则的兼容性。
- `--temporary_files_codec arg`:设置临时文件的压缩编解码器(例如 LZ4、NONE)。
最后使用这种方式达到目的:
# 语句
clickhouse-client --port=9000 -m --database edc_3_1 --max_execution_time=5 --query "select * from pisitlog format CSV" >> /home/lolidate.csv
# 结果
Received exception from server (version 23.9.6):
Code: 159. DB::Exception: Received from localhost:9000. DB::Exception: Timeout exceeded: elapsed 5.24 seconds, maximum: 5: While executing MergeTreeSelect(pool: ReadPool, algorithm: Thread). (TIMEOUT_EXCEEDED)
(query: select * from pisitlog format CSV)
--max_execution_time=300 单位秒
这种就很nice