文章目录

  • 一、clickhouse索引

一、clickhouse索引

  • 以下是总结的几点关于clickhouse索引的内容

1、clickhouse可以有多个Primary Key,而且Primary Key可以任意列(值可以重复);

2、clickhouse数据默认按第一个主键排序,第一个主键相同的按第二个主键排序,依此类推;

3、clickhouse按颗粒划分区间,默认颗粒大小是8092,10M;定位到区间后,颗粒内的数据并行进入clickhouse中进行分析处理。

4、clickhouse对第一个主键使用二分查找算法,所以基于它的过滤查找很快。

5、clickhouse对基于第二个主键过滤的查询使用通用排除搜索算法,当第一个主键基数较大时,查询性能不是很理想。
基于上面的情况,可以另外创建一个Projection(按照新的主键排序),projection会另外创建一个隐藏表,show tables时不可见。隐藏表和主表自动同步数据,且查询时会自动选择适合的表。

6、clickhouse压缩率极高;列的压缩率和主键基数的顺序有很大关系。当主键基数从小到大排序时压缩性能最好(此时物理上来看,相似数据靠的很近,更有利于压缩)

7、clickhouse有时会有快速定位某一行的需求(虽然这不是clickhouse的针对应用场景),通常的做法是:为每一行生成一个UUID,然后UUID作为第一个主键,这样就可以根据UUID快速定位到某一行了。但是这样存在一个问题:每个UUID都不相同,主键基数很高不利于后面列值的压缩。所以使用局部敏感hash生成一个fingerprint,然后主键这种形式(fingerprint, UUID),再基于UUID进行查询。这样既兼顾了查询速度,又兼顾了压缩率。

clickhouse索引相关推荐

  1. 主键顺序影响——如何优化 ClickHouse 索引(二)

    回顾一下上一篇文章,ClickHouse 的存储设计,从存储目录出发,讲 ClickHouse 的数据读取: 第一阶段,通过隐含的 granule 单位读取主键索引 idx 文件 通过二分搜索过滤不需 ...

  2. 大数据druid查询不支持分页_Klin、Druid、ClickHouse核心技术对比

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 大数据技术与架构点击右侧关注,大数据开发领域最强公众号! 大数据真好玩点击右侧关注,大数据真好玩! ...

  3. Kylin、Druid、ClickHouse核心技术对比

    点击上方"朱小厮的博客",选择"设为星标" 后台回复"书",获取个gui 来源:jackywoo.cn 导读:Kylin.Druid.Cli ...

  4. Klin、Druid、ClickHouse核心技术对比

    点击上方蓝色字体,选择"设为星标" 回复"资源"获取更多资源 大数据技术与架构 点击右侧关注,大数据开发领域最强公众号! 大数据真好玩 点击右侧关注,大数据真好 ...

  5. ClickHouse基础知识及与MySQL性能对比

    文章目录 ClickHouse介绍 如何理解OLTP和OLAP 如何理解行式存储和列式存储 ClickHouse应用场景 ClickHouse引擎 Log系列引擎 MergeTree系列表引擎 Col ...

  6. 【clickhouse】ClickHouse表引擎 MergeTree 索引与数据存储方式 一级索引 二级索引

    1.概述 转载:ClickHouse表引擎 MergeTree 索引与数据存储方式 2.一级索引 MergeTree 主键使用 primary key 定义,定义主键后,会将数据依据 index_gr ...

  7. 【clickhouse】MergeTree引擎的固定/自适应索引粒度

    文章目录 1.概述 2.固定索引粒度 3.自适应索引粒度 1.概述 转载:聊聊ClickHouse MergeTree引擎的固定/自适应索引粒度 我们在刚开始学习ClickHouse的MergeTre ...

  8. ClickHouse MergeTree二级索引/跳数索引

    在前一篇文章<ClickHouse MergeTree表引擎和建表语句>中,我们详细介绍了MergeTree的建表语句.存储结构和索引原理,本篇我们继续介绍MergeTree的另一个特性- ...

  9. clickhouse 二级索引

    前言 在mysql中,我们在创建表的时候知道有多种索引可供选择,比如主键索引,单值索引,复合索引等,在clickhouse中,同样提供了多种索引可供开发者使用: primary key 主键索引(可选 ...

最新文章

  1. 小学英语运用计算机教学自评,信息技术在小学英语课堂中如何更有效地利用教学评价...
  2. 虚拟存储器(虚拟内存Vitual Memory)
  3. java就_GitHub - IammyselfYBX/This_is_how_Java_should_be_learned: 《Java就应该这样学》
  4. string 包含_一文搞懂String常见面试题,从基础到实战,到原理分析和源码解析...
  5. 【英语学习】【WOTD】resuscitate 释义/词源/示例
  6. Windows安全不能靠本地管理员权限
  7. traceping是什么意思_关于CCNA ,ping 与trace 有什么区别
  8. 未来的云计算基础设施长什么样?
  9. 盘古开源:中央网信办发布“十四五”国家信息化规划,数字化春风吹遍全国
  10. 全国大学生数学建模竞赛、美赛研究生数学建模优秀论文分享
  11. google aviator:轻量级Java公式引擎
  12. javafx 教程_用JavaFX编写图块引擎
  13. SpringBoot微服务技术中进程间通信原理
  14. 海信E8K和E8H区别对比哪个好
  15. 微软提出基于知识图谱的深度神经网络DKN用于新闻推荐
  16. 数位dp总结 之 从入门到模板
  17. GCN与GAT之间的重要联系和区别
  18. ISP-长短曝光融合生成HDR图像
  19. 2.ECMAScript6详解
  20. 教程:SurfaceRT生存指南-WinRT8.1越狱运行ARM的exe程序;

热门文章

  1. Python基础教程-第9章-魔法方法、特性和迭代器
  2. 企业官方网站怎么申请?
  3. 观《肖申克的救赎》有感
  4. 超级课程表:3000万大学生的运营策略和价值挖掘
  5. 温州大学黄海广博士《深度学习》课程课件(四、深层神经网络)
  6. Java 上传文件到ftp服务器
  7. LTE无线连接过程--UE Attach过程和Detach过程
  8. 两个年月日怎么相减_stata怎么把年月日相减
  9. 高三计算机专业的班名,计算机专业班级口号 理科特色口号
  10. winform实现文字滚动