#10570·timescaledb

minmax 稀疏索引未用于具有 UNIQUE 约束的 INSERT 操作

作者: akuzm创建于 2026年9月8日更新于 2026年9月8日
标签Columnstore
- 说吧 对INSERT独有约束冲突检查不应用已配置的分镜稀有索引 。

创建桌票 扫描站(scan timed timetamptz not null,票号文本);
选择创建   hypertable('ticket scans','scan time');
在票证上创建独特的索引(ticket code,scan time);
更改桌票 扫描仪设置(时间缩放b.compress,
timscaledb.compress orderby = “扫描时间”,
timscaledb.compress index = “ minmax ("ticket code" )"); ; 2.

插入入票口 扫描
选择“ 2026-01- 01 ” : timestamptz + 间隔“ 1 秒 ” * i, “ code-” QQ i
从生成 系列(1, 10) i;
选择压缩 chunk(显示 chunks('ticket scans'));

设置时标b.debug compression path info=在;

-- 显示索引本身工作的基线: 密钥低于批量最小值, DELETE 从未获取
- 批次
(一) 从票中删去票号='aaa-lost'的扫描;
- INFO:从表格扫描中获取的压缩行数:0.

- 同一密钥的INSERT取取并解压缩批次
解释(分析、费用、缓冲、摘要、时间)
插入票面扫描值(“2026-01-01 00:00:05.5”、“aaa-lost”);
- INFO:取自表格扫描的压缩行数: 1.
-- 显示: Batches 扫描: 1, 在解压后过滤: 1

这是专门为了minmax设计的,如果你改变索引类型以开花,它也会被用于INSERT.

如果列是命令,索引也得到适当使用.

内容来源: timescale/timescaledb