小程序云开发内关于模糊查询及其性能测试

声明

本文内数据是本人自己的数据库(内数据是已知的过载数据30w条)云服务器是最低配置4G➕20w访问限度/月,以保证数据足够可以用来进行模拟测试,测试主要工具是websocker
由于官方已经对此已经有过了声明
小程序云开发内关于模糊查询及其性能测试_第1张图片db.RegExp官方介绍
当然会有人问既然官方已经给出了相关声明为什么我们还要再进行测试呢?当然对于数据量较小(10w-15w)来说不会有太多的性能误差,但公司内给你了一个数据量在20w-25w数据只能在已知30w数据量之下却并不知道是否对查询性能产生影响,因此需要测试出模糊查询的最高指标到底在哪?

db.RegExp构造器使用方法

依照官方提供的案例,首先db.RegExp构造器的基础库适用版本最低是2.3.2(wx-server-sdk最低为0.0.23)且在使用后可知,小程序使用构造器时并不像JavaScript那样可以支持正则符号进行匹配而是官方提出使用flag"i"、"m"、"s" (因为曾经我也在此被坑过,在此对大家进行警告不要使用正则符号)一起准备完毕后开始展示代码:

 \\调用数据库
 const db = wx.cloud.database(),
 db.colloction('database').where({
     word_value : db.RegExp({ //字段内匹配值 :构造器 再次声明基础库要更新为最新版本
            regexp : search.detail.value, //与输入内容进行匹配
            opinions : "i",     //flag不区分大小写       
   }).get({
      success : res =>{
         this.setData({
            data : res.data
            })  
          console.log(res)
           }
         })
})

使用websocker进行模拟测试

在使用模糊查询构造器后进行模拟测试,首先查询数据量小于15w大于10w的数据,并每次以5w次数据累加测试,在数据累加到25w左右后,明显在使用模糊查询构造器后性能有所降低并出现少许的加载速率延迟,虽然云端检索器内没有命中记录,但却已经开始对系统性能有了明显的影响,再当数据量达到28.7w时系统性能已经有了明显的影响,可知在数据量达到29w后,已经不能再次进行进一层的深度查询了,在此可以粗略计算在小程序推广以后,假设平均每天访问量共有10w人次,数据量为2w,根据模拟测试的结果得知,最大不得超过5千人次/s。

结论

在使用构造器时,首先需要看数据量的大小,如果数据量较小,则不必考虑系统性能的影响,当数据量非常大的情况下,可以尝试使用分块储存为静态文件以减小系统负担。

你可能感兴趣的:(小程序性能)