当前位置: 首页 > article >正文

Oceanbase-Topk直方图

文章目录

  • 计算公式:
  • 公式的含义:
  • 举例解释
    • 场景设定
    • 直方图记录情况
    • 结果分析
  • 总结

计算公式:

(1 - (1 / bucket_size)) * 100
这个计算公式,用来确定在 Topk 直方图中,哪些值会被认为是“重要值”,即超过特定的百分比阈值时会被记录在直方图中。它反映了每个桶(bucket)在直方图中的重要性。让我们具体解释一下如何理解这个公式。

公式的含义:

bucket_size:直方图的桶数(即最大不同值的数量),通常为254。这意味着直方图最多可以容纳254个不同的值(或频率最高的254个值)。
(1 - (1 / bucket_size)) * 100:这个计算表示单个桶在总体中的最低百分比权重。若某个值的频率低于这个百分比,就不会被记录在直方图中。

举例解释

场景设定

假设有一张包含 10,000 行数据的表,某列的数据分布如下:

出现次数
A5000
B2000
C500
D200
E100
F100
G100
H100
其他1900

在这张表中,有几个数据的出现频率相对较高(比如 A 和 B),其余数据的出现频率较低。
使用 Topk 直方图
我们为这个列创建 Topk 直方图,并设置bucket_size = 254。此时,公式计算的最低百分比阈值为:
(1 - (1 / bucket_size)) * 100=(1-(1/254))*100=99.60%

这意味着在直方图中,只有出现频率超过总数据量的 0.4% 的值会被记录在直方图中。对于这张 10,000 行的数据表:

0.4% 的 10,000 行是 40 行。因此,只有出现次数超过 40 的值才会被记录在直方图中。

直方图记录情况

根据这个标准,我们来看看哪些值会被记录在直方图中:

出现次数记录情况
A5000记录
B2000记录
C500记录
D200记录
E100记录
F100记录
G100记录
H100记录
其他1900(每个值少于40次)不记录

结果分析

A、B、C 等值因其出现频率超过了 0.4%,所以被记录在直方图中。
其他值(合计 1900 次,但每个值单独的出现次数都低于 40 次)不会被记录在直方图中,因为它们的出现频率低于 0.4%,被认为对优化查询不重要。

总结

这个最低百分比阈值的目的是确保直方图只记录出现频率较高的“重要”值,从而减少直方图的大小和复杂度,使查询优化器能够更高效地使用这些频率信息。


http://www.kler.cn/a/390664.html

相关文章:

  • STM32 GPIO 配置
  • 笔记 | image may have poor performance,or fail,if run via emulation
  • Python标准库模块的使用:math、datetime
  • Day09 C++ 存储类
  • Matlab自学笔记四十一:介绍日期时间型的显示格式:年‘y‘ 月‘M‘ 日‘d‘ 周‘e‘ 时‘h‘ 分‘m‘ 秒‘s‘
  • 力扣 LeetCode 142. 环形链表II(Day2:链表)
  • 【C++】基础语法概念
  • web安全漏洞之xss(1)
  • vue常见题型(10-15)
  • 在AutoDL上部署一个自定义的Python环境并在pycharm上使用
  • Java面试要点06 - static关键字、静态属性与静态方法
  • JavaScript如何操作HTML:动态网页构建指南
  • 数据结构---排序总结
  • Rust实战项目与未来发展——跨平台应用开发项目实践
  • SpringMVC学习记录(三)之响应数据
  • Webserver(5.6)服务器压力测试
  • Cross Modal Transformer: Towards Fast and Robust 3D Object Detection
  • Linux - 弯路系列1:xshell能够连接上linux,但xftp连不上(子账号可以连接,但不能上传数据)
  • 工位管理智能化:Spring Boot企业级平台
  • 如何自己实现事件的订阅和发布呢?
  • IP、网关、子网掩码的验证逻辑及程序(.Net)
  • 亚信安全新一代WAF:抵御勒索攻击的坚固防线
  • perf抓取compass能解析的日志
  • 深入了解区块链:Web3的基础架构与发展
  • 【Android、IOS、Flutter、鸿蒙、ReactNative 】文本Text显示
  • Pytorch如何精准记录函数运行时间