问题描述
我希望通过使用SAMPLE来牺牲速度的准确性。尽管某些查询的运行速度更快,但query_log显示与不使用SAMPLE相比,正在读取所有行,并且读取了更多字节。我以为SAMPLE将导致更少的行读取。
我的问题:
-
使用SAMPLE是否会导致读取更多的行和字节?
-
由于次最佳表格定义可以纠正,因此读数增加了吗?
我正在使用ClickHouse版本20.5.3修订版54435。
表定义:
CREATE TABLE default.table_one
(
`datestamp` Date,`timestamp` UInt64,`sample_hash` UInt64,`value` UInt32,...
)
ENGINE = MergeTree()
PARTITION BY date_stamp
ORDER BY (datestamp,timestamp,sample_hash)
SAMPLE BY sample_hash
SETTINGS index_granularity = 8192
不带样品的查询
SELECT
avg(value)
FROM default.table_one;
query_duration_ms: 166
rows_read: 100,000,000
read_bytes: 800,000
使用样品查询
SELECT
avg(value)
FROM default.table_one
SAMPLE 0.1;
query_duration_ms: 358
rows_read: 100,000
read_bytes: 1,600,000
解决方法
暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!
如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。
小编邮箱:dio#foxmail.com (将#修改为@)