索引

简介: 索引

  索引

  主键

  ClickHouse支持主键索引,它将每列数据按照index granularity(默认8192行)进行划分,会为每个数据片段创建一个索引文件,索引文件包含每个索引行(『标记』)的主键值。索引行号定义为 n * index_granularity 。当数据被插入到表中时,会分成数据片段并按主键的字典序排序。例如,主键是 (CounterID, Date) 时,片段中数据按 CounterID 排序,具有相同 CounterID 的部分按 Date 排序。

  但是值得注意的是:ClickHouse 不要求主键惟一。所以,你可以插入多条具有相同主键的行。要想实现去重效果,需要结合具体的表引擎ReplacingMergeTree、CollapsingMergeTree、VersionedCollapsingMergeTree实现。

  稀疏索引

  ClickHouse支持对任意列创建任意数量的稀疏索引。其中被索引的value可以是任意的合法SQL Expression,并不仅仅局限于对column value本身进行索引。之所以叫稀疏索引,是因为它本质上是对一个完整index granularity(默认8192行)的统计信息,并不会具体记录每一行在文件中的位置。

目录
相关文章
|
Java Linux
Linux下安装JDK9
Linux下安装JDK9
279 0
|
5月前
|
jenkins 持续交付 开发工具
利用Dockerfile自主构建Jenkins镜像
希望这个过程能善用你的野马般想象,把自己置身于和计算机的卓尔不凡的对话中,让编程的过程充满趣味。
177 36
|
3月前
|
缓存 数据库连接 数据库
缓存三剑客(穿透、击穿、雪崩)
缓存穿透指查询数据库和缓存中都不存在的数据,导致请求直接冲击数据库。解决方案包括缓存空对象和布隆过滤器。缓存击穿是大量请求访问同一个失效的热点数据,使数据库瞬间压力剧增,解决方法有提前预热、设置永不过期、加锁限流等。缓存雪崩是大量key同时失效,导致所有请求直达数据库,可通过引入随机过期时间缓解。三者分别对应单点爆破、全面崩塌等问题,需根据场景选择合适策略优化系统性能与稳定性。
219 0
|
消息中间件 SQL API
Flink线上问题汇总篇(2)-时区不一致系统时间少8小时导致数据丢失问题
flink按月度汇总数据,月初时数据部分丢失问题
1821 0
|
存储 SQL 运维
涨姿势 | 一文读懂备受大厂青睐的ClickHouse高性能列存核心原理
本文尝试解读ClickHouse存储层的设计与实现,剖析它的性能奥妙
3874 0
涨姿势 | 一文读懂备受大厂青睐的ClickHouse高性能列存核心原理
|
4月前
|
人工智能 监控 Java
《揭秘!Spring AI 1.0与Micrometer的深度对话如何重塑性能监控新格局》
Spring AI 1.0是专为AI工程设计的Java应用框架,融合了Spring生态的可移植性和模块化理念。它通过ChatClient接口支持20多种AI大模型(如Anthropic、ZhiPu等),简化复杂AI应用开发。同时,其向量存储抽象接口兼容多种数据库(如Azure Cosmos DB、Weaviate),助力高效数据管理。集成Micrometer后,框架可监控关键性能指标,如模型响应延迟、Token使用情况、调用频率及工具调用成功率,帮助企业优化成本、提升性能与用户体验。这一创新框架为企业构建智能化、个性化服务提供了强大支持。
115 0
|
JavaScript API C++
Vue项目中的文件/文件夹命名规范
文件或文件夹的命名遵循以下原则: index.js 或者 index.vue,统一使用小写字母开头的(kebab-case)命名规范 属于组件或类的,统一使用大写字母开头的(PascalCase)命名规范 其他非组件或类的,统一使用小写字母开头的(kebab-case)命名规范 1.
17752 0
|
Java Maven
IDEA Maven项目引入本地外部jar包
IDEA Maven项目引入本地外部jar包
|
12月前
|
机器学习/深度学习 人工智能 网络协议
|
负载均衡 数据管理
ClickHouse的分布式查询流程
ClickHouse的分布式查询流程