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

一文掌握 Velox orderby 算子的排序算法

0 引言

排序是计算机科学中研究最深入的问题之一。高效排序算法的研究主要集中在缓存效率、减少分支预测错误、并行性和最坏情况模式等关键问题上,但主要限于对大型整数数组进行排序。数据库系统研究主要关注许多相同的问题,并且数据库系统具有一些最实用的排序用例:ORDER BY 和 WINDOW 等算子需要明确使用到排序。因此,拥有高效的排序实现以提供快速查询响应时间至关重要,尤其是对于分析 (OLAP) 数据管理系统而言。对关系数据进行排序比对整数数组进行排序更复杂,本文将详细介绍 Velox 的 OrderBy 算子的实现。

1 OrderBy 算子简介

在 Velox 里面以下的查询执行计划树里面包含 OrderBy 算子。

SELECT c_customer_sk, c_birth_country, c_birth_year
FROM customer
ORDER BY c_birth_country DESC,
         c_birth_year    ASC NULLS LAST;

在上面查询中,c_birth_country 按降序排列,如果 c_birth_country 相等,则按 c_birth_year 升序排序。通过指定 NULLS LAST,空值将被视为 c_birth_year 列中的最小值。和我们平常了解的排序算法不一样的地方是,除了 c_birth_country 和 c_birth_year 列需要排序,c_customer_sk 也得更着排序。在业界排序的列称为 key columns,而其他要输出的列称为 payload columns。

2 O

相关文章:

  • AWS S3 和 Lambda 使用
  • 【超详细】讲解Ubuntu上如何配置分区方案
  • 简单总结比较TCP,UDP,Socket协议
  • SQLServer常用日期时间格式转换及常用日期和时间函数
  • 注解 定义自定义注解,常见(spring springboot springcloud)
  • 设计模式 Day 2:工厂方法模式(Factory Method Pattern)详解
  • Sentinel[超详细讲解]-4
  • 【linux】malloc函数申请过程理解
  • HTML中一些需要注意的要点
  • 设计模式(结构性)-代理模式
  • GaussDB高安全—全密态数据库
  • Android SystemProperties 读写机制详解和案例使用
  • 长城汽车联手宇树科技,KPaaS如何赋能制造业数字化升级?
  • # 实时人脸识别系统:基于 OpenCV 和 Python 的实现
  • vue: easy-cron扩展-更友好地显示表达式
  • 【学习篇】pandas进行数据清洗
  • Vue 组件 - 动态组件
  • 蓝牙数字音频和模拟音频优劣势对比?
  • Redis-16.在Java中操作Redis-Spring Data Redis使用方式-操作有序集合类型的数据
  • hive数据仓库
  • 保证断电、碰撞等事故中车门系统能够开启!汽车车门把手将迎来强制性国家标准
  • 优化网络营商环境,上海严厉打击涉企网络谣言、黑灰产等违法犯罪
  • 明查|这是“C919迫降在农田”?实为飞机模型将用于科普体验
  • 印方称若巴方决定升级局势,印方已做好反击准备
  • 习近平离京赴莫斯科对俄罗斯进行国事访问并出席纪念苏联伟大卫国战争胜利80周年庆典
  • 国铁集团:铁路五一假期运输收官,多项运输指标创历史新高