添加新的跳过索引

Posted

技术标签:

【中文标题】添加新的跳过索引【英文标题】:Adding new skip indexes 【发布时间】:2021-08-13 06:20:50 【问题描述】:

我们已经在 prod 上运行了一个带有 1 个跳过索引的 clickhouse 集群,现在我们正在尝试使用此命令添加 2 个新索引:ALTER TABLE ****** ON CLUSTER ***** ADD INDEX new_index1 eVar1 TYPE set(100) GRANULARITY 1, ADD INDEX new_index2 prop0 TYPE set(100) GRANULARITY 1; 我从文档中读到,为了将这些新索引应用于现有数据,我们还需要在查询下运行,也是如此:

OPTIMIZE TABLE ******* ON CLUSTER ****** FINAL

但是,我们仍然没有看到使用这些索引的查询有任何性能改进,有什么方法可以调试查询中使用了哪些索引?我尝试了 EXPLAIN PLAN 命令,但我们使用的版本不支持使用 EXPLAIN 设置索引。

【问题讨论】:

【参考方案1】:

尝试运行 clickhouse-client 并运行

SET send_logs_level='trace';
SELECT ... your query;

它会告诉你使用哪个二级索引以及它如何跳过数据部分

也许您的索引类型或您的列值分布对应用索引和索引无效,只是不跳过任何内容,或者在查询执行期间跳过太低的数据部分

【讨论】:

以上是关于添加新的跳过索引的主要内容,如果未能解决你的问题,请参考以下文章

如何在Java中处理一维数组的跳过输入

如何跳过重复索引上的错误并继续在 MongoDB 中进一步添加文档(pymongo)

Pandas-如何添加条目跳过行的列?

MySQL 在添加新的复合索引时是不是会在表上获得锁?

使用FilterInputStream的跳过方法

markdown 修复您的跳过链接。 [JS]