用 EXPLAIN PIPELINE 加真实改 max_threads,看同一条聚合查询的处理器流水线真实是怎么随线程数从1条变成8条并行分支的,以及并行分支多了之后耗时的真实变化。
用 clickhouse-client 的 Native 格式真实导出一份原始字节流,逐字节解码出 ClickHouse 内部真正传递的最小单位——Block:一份列名、一份类型、然后每一列的值各自连续排列在一起。
真实往 MergeTree、ReplacingMergeTree、SummingMergeTree 里写入同样的重复数据,对比 OPTIMIZE FINAL 前后的真实结果,再验证 SELECT ... FINAL 和物理合并的真实区别。
真实建一张30万行、按月分区、按region+uid排序的表,用三种不同的WHERE条件真实对比read_rows,看ORDER BY前缀过滤、非索引列过滤、分区裁剪这三种情况真实读了多少数据。
真实建两张200万行的表,一张用默认的index_granularity=8192,一张调到128,用真实的marks_bytes和point query的read_rows,看稀疏索引到底稀疏在哪、代价换来了什么。
真实执行一次INSERT,直接ls磁盘上生成的part目录,逐个文件看清楚checksums.txt、columns.txt、count.txt都装了什么,再对比Compact和Wide两种part格式真实的文件差异。