Token导航 LogoToken导航TokenDH.com
待分类只读github未标认证来源可访问许可证需确认审计通过

altinity-expert-clickhouse-index-analysisAltinity 专家 clickhouse 指数分析

Agent Skill

altinity-expert-clickhouse-index-analysis 用于处理 GitHub 仓库、Issue、Pull Request 和代码协作信息,适合在 Codex、Claude、Cursor、Gemini CLI 中需要围绕仓库状态、代码变更或协作事项进行整理时使用。可结合来源仓库、安装命令和原始 README 继续核验具体用法。安装前建议确认权限范围、维护状态,以及是否会触发联网、命令执行或文件读写。

总安装

1,151

周安装

47

GitHub Stars

5

下载量

368
CodexClaudeCursorGemini CLI

安装说明

本站只整理中文说明和来源信息,不托管安装包,也不代用户安装。

GitHub

来源数

2

许可证

unknown

最后核验

2026-05-01

来源状态

来源可访问

安装方式

通过对话安装

复制提示词发给支持本地命令或 Skills 的 AI 助手,先确认命令和权限,再让它执行。

请帮我安装这个 Agent Skill:altinity-expert-clickhouse-index-analysis(Altinity 专家 clickhouse 指数分析)
来源仓库:https://github.com/altinity/skills
仓库路径:skills/altinity-expert-clickhouse-index-analysis
安装命令:
npx skills add https://github.com/altinity/skills --skill altinity-expert-clickhouse-index-analysis
安装前请先检查当前环境是否支持对应 CLI,并向我确认将要执行的命令、安装目录、联网范围和文件读写权限;确认后再执行。

命令行安装

复制命令到本机终端执行。该命令会通过 npx skills 从第三方来源获取 Skill;本站只展示命令,不托管安装包,也不自动执行。

skills.shnpx skills
npx skills add https://github.com/altinity/skills --skill altinity-expert-clickhouse-index-analysis

简介

深入分析 ClickHouse 索引使用情况与查询性能瓶颈。

  • 适用于评估 ORDER BY 顺序、列基数及跳过索引有效性。
  • 提供 EXPLAIN indexes 查询模板用于定位低效扫描。
  • 依赖 checks.sql 中的基准查询获取初始指标数据。
  • 使用前应确保对目标表的 EXPLAIN 权限及对 system.* 表的访问能力。

SKILL.md

Diagnostics

Run all queries from the file checks.sql and analyze the results.


Deep Dive Queries (Placeholder-Based)

EXPLAIN Index Usage for Specific Query

EXPLAIN indexes = 1
{query_without_format}

Look for:

  • PrimaryKey condition should not be true (means no filtering)
  • Granules: X/Y ratio shows selectivity (low X/Y = good)
  • Skip indexes should reduce parts/granules further

Column Cardinality Analysis

SELECT
    {columns} APPLY uniq
FROM {database}.{table}
WHERE {time_column} > now() - INTERVAL {days} DAY

Optimal ORDER BY ordering: Low cardinality columns first, high cardinality last.

Query Pattern WHERE Columns Extraction

WITH
    any(query) AS q,
    arrayJoin(extractAll(query, '\\b(?:PRE)?WHERE\\s+(.*?)\\s+(?:GROUP BY|ORDER BY|UNION|SETTINGS|FORMAT|$)')) AS w,
    arrayFilter(x -> (position(w, extract(x, '\\.(`[^`]+`|[^\\.]+)$')) > 0), columns) AS c,
    arrayJoin(c) AS c2
SELECT
    c2,
    count() AS usage_count
FROM system.query_log
WHERE event_time >= now() - toIntervalDay({days})
  AND arrayExists(x -> x LIKE '%{table}%', tables)
  AND query ILIKE 'SELECT%'
  AND type = 'QueryFinish'
GROUP BY c2
ORDER BY usage_count DESC
FORMAT PrettyCompactMonoBlock

Normalized WHERE Clause Patterns

WITH
    arrayJoin(extractAll(normalizeQuery(query), '\\b(?:PRE)?WHERE\\s+(.*?)\\s+(?:GROUP BY|ORDER BY|UNION|SETTINGS|FORMAT|$)')) AS w
SELECT
    w AS where_pattern,
    count() AS frequency
FROM system.query_log
WHERE event_time >= now() - toIntervalDay({days})
  AND arrayExists(x -> x LIKE '%{table}%', tables)
  AND query ILIKE 'SELECT%'
  AND type = 'QueryFinish'
GROUP BY w
ORDER BY frequency DESC
LIMIT 20

Granule Selectivity from Query Log

SELECT
    query_id,
    normalized_query_hash,
    selected_parts,
    selected_marks,
    read_rows,
    round(read_rows / nullIf(selected_marks, 0)) AS rows_per_mark,
    query_duration_ms,
    formatReadableSize(read_bytes) AS read_bytes
FROM system.query_log
WHERE event_time >= now() - toIntervalDay({days})
  AND arrayExists(x -> x LIKE '%{table}%', tables)
  AND query ILIKE 'SELECT%'
  AND type = 'QueryFinish'
ORDER BY selected_marks DESC
LIMIT 20

High selected_marks / total marks = poor index utilization.


Analysis Workflow

Step 1: Check Current Indexes

-- Table structure with ORDER BY, PRIMARY KEY, indexes
SHOW CREATE TABLE {database}.{table}
-- Skipping indexes
SELECT name, type, expr, granularity
FROM system.data_skipping_indices
WHERE database = '{database}' AND table = '{table}'

Step 2: Extract Query Patterns

Run the WHERE column extraction and normalized pattern queries to understand:

  • Which columns appear most frequently in WHERE clauses
  • What condition combinations are common

Step 3: Check Column Cardinalities

Compare cardinalities of columns in:

  • Current ORDER BY key
  • Frequently filtered columns from Step 2

Step 4: Evaluate Index Alignment

Query PatternIndex SupportAction
Filters on ORDER BY prefix✅ GoodNone
Filters on non-ORDER BY cols⚠️ Skip index?Add bloom_filter or projection
Time range + entity⚠️ Check orderTime in ORDER BY or partition?
High-cardinality first in ORDER BY❌ BadReorder (low→high cardinality)

ORDER BY Design Guidelines

Column Order Principles

  1. Lowest cardinality first - maximizes granule skipping
  2. Most frequently filtered - columns in WHERE should be in ORDER BY
  3. Time column considerations:

- If most queries filter on time ranges → include in ORDER BY (possibly with lower resolution like toDate(ts)) - If partition key handles time filtering → may not need in ORDER BY

Common Anti-Patterns

Anti-PatternProblemFix
High-cardinality UUID firstNo granule skippingMove after low-cardinality columns
DateTime64 microseconds firstToo granularUse toDate() or toStartOfHour()
Column in WHERE not in ORDER BYFull scanAdd to ORDER BY or create projection
Bloom filter on ORDER BY columnRedundantRemove skip index
Time not in ORDER BY or partitionRange queries scan allAdd toDate(ts) to ORDER BY prefix

Cardinality Ordering Example

Given cardinalities:

  • entity_type: 6
  • entity: 18,588
  • cast_hash: 335,620

Recommended ORDER BY: (entity_type, entity, cast_hash,...)


Skipping Index Guidelines

When Skip Indexes Help

  • Column NOT in ORDER BY
  • Column values correlate with physical data order
  • Low false-positive rate for the index type

When Skip Indexes Don't Help

  • Column already in ORDER BY prefix (use PRIMARY KEY instead)
  • Column values randomly distributed (no correlation with ORDER BY)
  • Very high cardinality with set/bloom_filter

适合场景

01

用户想查找某类 Agent Skill 时

02

需要根据任务场景推荐可安装能力包时

03

需要对比不同来源的安装命令和来源信息时

能力概览

能力 1

按任务关键词查找相关 Skills

能力 2

展示可复制的安装命令

能力 3

保留来源站点、仓库和原始说明,方便继续核验

能力 4

展示第三方安全扫描或审计结果

安装后应在对应宿主中按原始 README 的触发条件使用;具体调用方式请以来源页面和 README 为准。

平台分布

Codex

36.78%
按下载量换算135

Claude

29.65%
按下载量换算109

Cursor

19.69%
按下载量换算72

Gemini CLI

10.45%
按下载量换算38

安全审计

Gen Agent Trust Hub

通过

Socket

通过

Snyk

通过

权限和风险

只读

该 Skill 主要提供规则、说明或参考内容,本身偏只读;真正读写文件、联网或执行命令仍取决于宿主 Agent 的任务。

安装前确认

本站仅展示第三方公开信息,不托管安装包,不提供自动安装或运行环境。安装前应自行审查源码、依赖和命令行为。当前只有一个来源,正式发布前建议补源仓库或其他目录站核验。

来源信息

继续浏览同类 Skills