关于DolphinDB的内存表问题

集群配置
物理机1:1个controller+1个agent+2个datanode
物理机2:1个agent+2个datanode
web管控界面:

attachments-2021-05-yJTwNPgx60ac6a60629f6.png
从DolphinDB GUI 连接DolphinDB server的P1-datanode1,执行如下代码,创建一个复合分区表:
n=20000000
ID=rand(100, n)
dates=2017.08.07..2017.08.11
date=rand(dates, n)
x=rand(10.0, n)
t=table(ID, date, x)
dbDate = database(, VALUE, 2017.08.07..2017.09.11)
dbID = database(, RANGE, 0 50 100)
db = database("dfs://compodb", COMPO, [dbDate, dbID])
pt = db.createPartitionedTable(t, pt, date`ID)
pt.append!(t)

我执行
select * from pt where date=2017.08.07

select ID from pt where date=2017.08.07
都是把所涉及的分区数据都加载到内存表中吗?

请先 登录 后评论

1 个回答

Jax Wu

执行select * from pt where date=2017.08.07是把涉及分区内的所有字段数据加载进内存表。

执行select ID from pt where date=2017.08.07是把涉及分区内的ID字段数据加载进内存表。

所以,执行select ID from pt where date=2017.08.07加载到内存表的数据,要比执行select * from pt where date=2017.08.07加载到内存表的数据少,占用的内存更少。

请先 登录 后评论
  • 1 关注
  • 0 收藏,923 浏览
  • chenweijian 提出于 2021-05-25 11:10

相似问题