回答一下第二个问题,类似上面的操作,使用table的性能会更好。示例代码如下:
t = table(101..110 as id, rand(5, 10) as value) t[t.value > 3]
将kv键值对转换为两列的table,再进行where条件过滤。
n=1000000 id = 1..n value = rand(100, n) z=dict(id, value) t=table(z.keys() as key,z.values() as value) t[t.value > 80]
对于只有两列的数据,如果是通过value找key,dict暂无比较好的实现方案;
如果是通过key找value,我们做了如下性能测试,可以看出使用table的方案性能是优于使用dict方案的。
timer(10) a = t[t.key > 80] timer(10) c= z[z.keys()>80]
实现方案 耗时
表 30.367 ms
字典 77.585 ms