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

多种单文件版分析型数据库调用底层函数对比

研究对象:duckdb, glaredb, cedardb, clickhouse, datafusion-cli

数据准备:
nm -D |grep " U"仅查询导入函数。

nm -D duckdb130 |grep " U" > due.h
nm -D glaredb |grep " U" > gla.h
nm -D cedardb723 |grep " U" > cdr.h
nm -D clickhouse |grep " U" > cck.h
nm -D datafusion-cli |grep " U" > daf.h

保存数据到duckdb:

create table t(db varchar, func varchar);insert into t select 'duckdb',i from read_csv('due.h',header=0)t(i);
insert into t select 'glaredb',i from read_csv('gla.h',header=0)t(i);
insert into t select 'cedardb',i from read_csv('cdr.h',header=0)t(i);
insert into t select 'clickhouse',i from read_csv('cck.h',header=0)t(i);
insert into t select 'datafusion',i from read_csv('daf.h',header=0)t(i);

统计

概况
1.各种数据库导入函数计数
D select db,count(*)cnt from t group by db order by db;
┌────────────┬───────┐
│     db     │  cnt  │
│  varchar   │ int64 │
├────────────┼───────┤
│ cedardb    │   413 │
│ clickhouse │   533 │
│ datafusion │   242 │
│ duckdb     │   429 │
│ glaredb    │   159 │
└────────────┴───────┘
2.各种数据库均导入的函数计数
D select count(*)cnt from (select func,count(*)cnt from t group by func having cnt=5);
┌───────┐
│  cnt  │
│ int64 │
├───────┤
│  52   │
└───────┘
3.哪些数据库用到了文件内存映射函数
D select db from t where func like '%munmap%';
┌────────────┐
│     db     │
│  varchar   │
├────────────┤
│ duckdb     │
│ glaredb    │
│ cedardb    │
│ clickhouse │
│ datafusion │
└────────────┘
4.哪些数据库用到了文件缓冲输出函数
D select db from t where func like '%setvbuf%';
┌────────────┐
│     db     │
│  varchar   │
├────────────┤
│ duckdb     │
│ cedardb    │
│ clickhouse │
└────────────┘
5.比较不同数据库之间公用函数的计数
D select t.db tdb, t1.db t1db,count(*)cnt from t join t t1 on(t.db<t1.db and t.func=t1.func )group by tdb,t1db order by cnt,1,2;
┌────────────┬────────────┬───────┐
│    tdb     │    t1db    │  cnt  │
│  varcharvarchar   │ int64 │
├────────────┼────────────┼───────┤
│ duckdb     │ glaredb    │    74 │
│ datafusion │ duckdb     │    97 │
│ clickhouse │ glaredb    │   108 │
│ cedardb    │ glaredb    │   109 │
│ datafusion │ glaredb    │   135 │
│ clickhouse │ datafusion │   141 │
│ cedardb    │ datafusion │   144 │
│ cedardb    │ duckdb     │   185 │
│ clickhouse │ duckdb     │   192 │
│ cedardb    │ clickhouse │   291 │
├────────────┴────────────┴───────┤
│ 10 rows               3 columns │
└─────────────────────────────────┘
http://www.dtcms.com/a/313222.html

相关文章:

  • [Oracle] TO_DATE()函数
  • cs285 lecture13
  • 手机端使用表格填写表单问题
  • 复现YOLOV5+训练指定数据集
  • STM32-ESP8266通过MQTT与阿里云通讯
  • MySQL连接算法和小表驱动大表的原理
  • 李宏毅深度学习教程 第8-9章 生成模型+扩散模型
  • 【Django】-7- 实现注册功能
  • 09.Redis 常用命令
  • Android 之 蓝牙通信(2.0 经典)
  • 【硬件-笔试面试题】硬件/电子工程师,笔试面试题-58,(知识点:硬件产品的功率优化)
  • C++中多线程和互斥锁的基本使用
  • 【RH124 问答题】第 8 章 监控和管理 Linux 进程
  • Baumer工业相机堡盟工业相机如何通过YoloV8深度学习模型实现实时食物水果的检测识别(C#代码UI界面版)
  • 使用 Spring Initializr 生成项目结构:Java 开发效率提升指南
  • 【QT】常⽤控件详解(二)windowOpacitycursorfontsetToolTipfocusPolicystyleSheet
  • 大语言模型涉及的一些概念(持续更新)
  • VisualStudio的一些开发经验
  • 思二勋:数字资产化与资产数权化是RWA运作的核心逻辑
  • AtCoder Beginner Contest 417
  • MySQL事务与存储引擎的学习(一)
  • Docker国内镜像列表
  • Effective C++ 条款19: 设计class犹如设计type
  • Python从入门到精通计划Day02: Python语法探秘:当现代艺术遇到古典音乐
  • 最小半径覆盖问题【C++解法+二分+扫描线】
  • 【CF】Day118——杂题 (随机哈希 / 思维 | 贪心 / DP | 位运算构造 | 状态压缩 + 建图 + 最短路 | 构造 | 贪心)
  • 使用纯Docker命令搭建多服务环境(Linux版)
  • Python篇---包
  • 在Ansys Mechanical中对磨损进行建模
  • 力扣经典算法篇-40-螺旋矩阵(方向遍历:方向数组+已访问元素集合)