SPL性能提升-单键值查找

一.介绍

集算器是一款程序化数据运算工具,它能够执行各类数据分析与结构化计算,也可以自由访问数据库,完成在线数据分析。
在这里插入图片描述
支持各种数据源混合查询,离散与集合的充分结合,超强有序计算,提倡分步计算

官网:http://www.scudata.com.cn/

二.准备

1.下载学习资源http://www.raqsoft.com.cn/wx/course-performance-optimizing.html

2.安装完毕打开集算器,设置seek为主目录
在这里插入图片描述
3.切换到主目录

在这里插入图片描述

4.执行脚本
在这里插入图片描述
1、“主目录\dfx\orders.dfx”,生成订单集文件"主目录\data\btx\orders.btx"。
2、“主目录\dfx\residents.dfx”,生成居民集文件"主目录\data\btx\residents.btx"
3、“主目录\dfx\fulltext.dfx”,生成全文检索组文件"主目录\data\ctx\fulltext.ctx"“。
4、“主目录\dfx\keyvalues.dfx”,生成键值组文件"主目录\data\ctx\col.ctx”"。

三.内存-单键值查找

一.准备数据

执行p1.1.dfx,生成一百万数据量的客户序表customer,并随机取出1000个id、name
在这里插入图片描述

二.内存-二分法

在这里插入图片描述
1.打开p1.2.dfx,用顺序查找,记录执行时间
在这里插入图片描述
2.打开p1.2.dfx,用二分法改写,记录执行时间
在这里插入图片描述
注意:二分法找name是不行的,二分法查找的必须是有序的集合

=customer.select@b(name= ="Luke")

三.序号定位

在这里插入图片描述
在这里插入图片描述
1.打开p1.3.dfx,用序号定位法改写,比较执行时间
在这里插入图片描述
注意:基于无序集合理论的关系数据库,没有提供序号定位的手段,即使可以用序号定位时也只能用主键查找

四.哈希索引

在这里插入图片描述
索引越长,产生哈希冲突的概率越小,查找速度越快,但占用内存越大

索引长度缺省:原序列长度和2000万的较小值。当users表长度为100万的时候,索引长度缺省就是100万,哈希值重复的情况就很少了。

1.打开p1.4.dfx,用哈希索引改写
在这里插入图片描述
我们的数据是100w,所以索引缺省值是100w,冲突率小,查询快

2.将A2的index()改为index(10000),强行修改索引缺省值
在这里插入图片描述
可以看到缺省值小了,哈希冲突概率增大,查询效率变低

四.位置索引

在这里插入图片描述
1.打开p1.5.dfx-文件,观察遍历查找的写法,记录执行时间
在这里插入图片描述
2.改写为位置索引法查找
在这里插入图片描述

五.多层序号查找

在这里插入图片描述
在这里插入图片描述
1.打开p1.6.dfx,居民表residents取出十万条数据,idcards随机取出100个idcard身份证号
在这里插入图片描述
2.身份证号前十四位转换为排号键代码如下,补全剩下的三位转换代码
在这里插入图片描述

六.多层序号与限制长度哈希索引对比

1.打开p1.8.dfx,利用长度1000的哈希索引查找10000次
在这里插入图片描述
2.改写p1.8.dfx,将residents主键改为idcardk,哈希索引改为排号键索引
在这里插入图片描述

四.外存-单键值查找

一.外存-二分法

在这里插入图片描述
在这里插入图片描述
1.打开p1.9.dfx,用遍历法查找oid==8123456,记录执行时间
在这里插入图片描述
2.利用二分法(外存)改写p1.9.dfx,比较性能
在这里插入图片描述

二.外存-排序索引

在这里插入图片描述
在这里插入图片描述
1.打开p1.10.dfx,无索引查找1000个随机的订单编号,记录执行时间
在这里插入图片描述
2.改写p1.10.dfx,使用排序索引查找,比较性能,查看产生的索引文件
在这里插入图片描述
在seek\data\ctx目录中发现订单索引文件
在这里插入图片描述

三.外存-哈希索引

在这里插入图片描述
1.打开p1.11.dfx,用遍历法查找1000个随机的订单编号,记录执行时间
在这里插入图片描述
2.改写p1.11.dfx,使用哈希索引查找,比较性能
在这里插入图片描述
在这里插入图片描述
保证生成的索引文件名称不能重复,平均索引长度为1最合适,冲突最小

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

愛沢かりん

感谢您对我的支持

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值