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

Doris的行列存储

Doris是一个高性能、实时的分析型数据库系统,采用多种存储模式以适应不同查询场景。其行列存储的处理策略如下:

1. 列式存储核心优势

针对分析型查询特点,默认采用列式存储:

用户表 (列存储格式) ├── user_id.bin ├── name.dict + .data ├── age.data └── last_login.compressed
  • 高压缩比:单列数据特征相似(如age的数值范围),可通过RLE字典编码等实现高压缩
  • 聚合加速:执行SELECT AVG(age)时仅需读取单列数据
  • 延迟物化WHERE age > 18筛选后再关联其他列数据

数学表达:
设查询涉及列比例 $ \frac{k}{n} $,行存储扫描成本 $ O(m) $,列存储理论扫描成本 $ O(\frac{k}{n} \times m) $

2. 行存优化点查询

为优化主键查询(如SELECT * FROM users WHERE user_id = 1001),提供行式存储格式:

# 行存储结构示例 Row: user_id: 1001 (4B) name: "张三" (UTF8, 6B) age: 28 (1B) last_login: 1698765432 (4B) # 总行大小 ≈ 15B
  • 点查优势:通过主键索引直接定位整行数据,减少磁盘随机I/O
  • 数据局部性:适合LIMIT 10等少量行返回场景

3. 自适应存储选择

根据业务场景智能选择:

存储类型适用场景示例查询
列存全表扫描/聚合SELECT SUM(sales) FROM fact
行存主键查询/小范围扫描SELECT * FROM orders WHERE id IN (1001,1002)
混存混合负载时间字段行存 + 指标字段列存

最佳实践

  • 时间序列数据:将timestamp设为行存,数值指标设为列存
  • 压缩算法配置:
    $$ \text{压缩比} = \frac{\text{原始数据量}}{\text{压缩后数据量}} $$ 对字典字段(如city)启用字典编码,可达 $10:1$ 压缩比

通过灵活存储策略,可在以下场景获得显著性能提升:

-- 列存优势场景:大数据量聚合 SELECT region, SUM(revenue) FROM sales WHERE year = 2023 GROUP BY region; -- 行存优势场景:主键+多列获取 SELECT product_name, price, stock FROM products WHERE product_id = 1005;
http://www.gsyq.cn/news/1616483.html

相关文章:

  • openeuler/easybox核心命令手册:find/grep/mount等27个工具使用教程
  • 如何使用openeuler/c2rust?从安装到转换的完整指南
  • utcpio错误处理与调试:5个常见问题终极解决方案指南
  • OpenDesign Components 版本发布指南:从开发到上线的完整流程
  • Kiran Session Guard 与 LightDM 集成实战:打造无缝桌面登录体验
  • 如何快速上手openEuler HPC Runner?5分钟完成你的第一个HPC应用部署
  • Java代码审计实战:深入剖析SQL注入漏洞的成因、检测与防御
  • witty-profiler Rust版本前瞻:高性能嵌入式运行时开发指南
  • 3个实用场景,快速掌握Spek音频频谱分析器
  • X-diagnosis内核锁检测工具:rtnl_mutex死锁定位与解决方案终极指南
  • witty-profiler瓶颈识别框架:7层性能诊断方法论完全解析
  • openEuler构建工具配置完全手册:环境变量与参数调优指南
  • eBPF技术深度解析:X-diagnosis如何实现零开销系统性能监控
  • openEuler sync-bot CLI 完全指南:命令行工具的强大功能详解
  • safeguard-web API文档使用指南:如何利用drf-spectacular调试接口
  • openEuler系统升级后服务状态检查:env_check服务管理测试详解
  • 复制网页内容排版乱糟糟?五款文本格式化工具实操记录
  • 学术写作的超级快充!好用的AI写作辅助软件,框架搭建零压力
  • sbom-service性能优化:大规模SBOM数据处理的最佳实践
  • 图标主题的国际化与本地化:支持多语言环境的图标设计
  • utipmitool安全认证配置:密码管理、权限级别与认证类型详解
  • utipmitool与OpenIPMI集成:本地接口配置与设备文件管理
  • 2026年下半年,值得关注的8场3D打印展会、论坛
  • Kiran会话管理器应用程序管理机制深度剖析
  • openEuler HPC Runner高级技巧:离线环境下的应用部署与管理
  • utxz未来路线图:下一代压缩技术探索与功能规划
  • ‌贾子成败定理(Kucius Success–Failure Theorem,KSFT)
  • witty-profiler性能优化技巧:10个提升采集效率的实用方法
  • Eggo节点任务管理:深入理解Node-Task机制的设计与实现
  • 索尼 FDR-AX45A 录制中断电 MP4 打不开完整解决办法