|批量随机键值的查询优化( 四 )
A2:判断为当前系统时间是否为月初 。
B2:若是月初 , f.reset 函数将补文件有序归并到主文件 , 同时清空补文件 , 并更新索引 。
A3:每天对补文件进行归并运算 , append 的 @a 代表归并追加到补文件上 , 若没有补文件则自动创建 , 并更新索引 。
多个文件时 , 利用补文件追加数据:
本文插图
查找时 , 代码不变 。 open 函数 , 当存在补文件时 , 会连带补文件的数据一同查找 。
六、 索引冗余
同一份数据不能在遍历运算(通常为列存)和随机取数(通常为行存)这两方面都达到最优性能 。 如果这份数据还想用于遍历运算 , 可以把数据冗余多份 , 以空间换时间 。
6.1 举例
本文插图
对需要遍历的数据 , 通常采用列存 。 SPL 中创建列存组表 , 只需要将 f.create@r 的 @r 去掉 , 就是以列存方式创建组表 。
对于列存组表 , 在建立索引时 , 还可以建立带值索引 , 把需要获取的数据复制进索引 , 基于以上的数据结构:
本文插图
对于多字段键的场景 , 组表建索引时 , 对应参数部分也有类似的写法:index(ids_data_idx;id1,id2,…,idN;data1,data2,…,dataN) 。
【|批量随机键值的查询优化】SPL的带值索引的查询与不带值索引使用一样 。 需要注意的是 , 使用带值索引 , 读取数据时将不再访问原数据文件 , 取数速度会更快 。 但是另一方面 , 因为在索引中做了冗余 , 索引文件也会较大 。
推荐阅读
- 路遇十三|提取阿里、淘宝小视频软件,可快速批量提取淘宝视频事前准备:步骤演示:
- 职场办公学习|每次进货价格不一样,Excel批量计算利润
- 南方都市报|拼多多淘金产业带,批量孵化美妆新国货,男士化妆品被盯上了
- 懂懂笔记|灰产租售“靠谱”直播号,商家千元备战双十一靠谱的直播账号可买可租批量“养号”,上量容易养号麻烦,买号省事
- |如何自动批量识别中通速递快递是否签收?什么样的工具比较好用?
- 科学|耶鲁大学最新实验推翻了量子随机论?
- 科学出版社|宋永华研究团队:新能源电力系统的随机过程分析与控制
- 账号|拟禁止批量注册囤积 公众账号将加严管理
- 重命名|Renamer for Mac(文件批量重命名软件)v6.0.6中文版
- 微信|好消息!微信 3.0.0 正式上线,可批量删除好友