在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有优势。
336

被折叠的 条评论
为什么被折叠?



