stockid的存储用INT还是SYMBOL

在dolphindb中,stockid的存储可以是INT,或者是SYMBOL,从存储空间占用和查询速度比较,哪种类型更有优势?

先看千问如何胡说:

首选 SYMBOL 对于 stockid 这种具有固定集合、用于标识和分类的字符串数据,强烈推荐使用 SYMBOL 类型

(存储空间):使用 SYMBOL 比将其转换为 INT 并存储为整数更节省空间且更合理

(查询速度):SYMBOL 的查询速度INT 相当,甚至在某些场景下更快,因为它专为这类操作优化。

经测试 ,看实验数据:

58800352    /home/ddb/local8848/storage/CHUNKS/stocktick ,stockid 类型是SYMBOL

58797980    /home/ddb/local8848/storage/CHUNKS/stocktick2,stockid 类型是INT

差距不明显,应该是SYMBOL的索引也是32位,和INT一样,额外多出来的是字典。查询:
dt_target =loadTable("dfs://stocktick",`stocktick) 
dt_source=loadTable("dfs://stocktick2",`stocktick2) 
select * from dt_source  where stockid=603501 搜索时间:14s 182ms,14s 67ms

select * from dt_target  where stockid=`603501 搜索时间:14s 963ms ,15s 140ms

还是INT有优势。

结论:如果全是数字,用INT有优势。


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值