问答详情 DolphinDB用indexedTable创建索引内存表时capacity应该设置多少?

在使用indexedTable创建索引内存表时,capacity这个值对后面的操作有什么影响吗?

我的创建代码如下:

t1 = indexedTable(`sym`id, 1:0, `sym`id`val, [SYMBOL,INT,INT])
t2 = indexedTable(`sym`id, 100:0, `sym`id`val, [SYMBOL,INT,INT])

在使用功能上没发现有什么区别,都可以正常写入和查询数,所以比较疑惑,设置capacity这个值有什么意义?

请先 登录 后评论

1 个回答

Jax Wu

capacity是正整数,表示建表时系统为该表分配的内存(以记录数为单位)。当记录数超过capacity时,系统会首先会分配capacity1.2~2倍的新的内存空间,然后复制数据到新的内存空间,最后释放原来的内存。对于规模较大的表,此类操作的内存占用会很高。因此,建议建表时预先分配一个合理的capacity。

请先 登录 后评论