短视频app开发中数据查询的优化调整

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/yun_bao_2144899870/article/details/88352292

在短视频领域,当前正面临着行业转变和洗牌,有竞争优势的可以继续发光发热,无法满足市场需求的很快就被淘汰。那么,一款好的短视频app开发就需要好的用户体验,纵观行业中蒸蒸日上的热门APP,通过定位功能获取附近动态消息的功能是大多数产品所必须具备的。那么,对于数据的精准性和实时性以及数据展示速度就有了更高的要求。
短视频app开发从技术角度而言,附近功能就是通过经纬度的交叉,确定当前用户所在位置,并且通过距离函数计算出以当前用户为中心,指定半径范围内或者按照距离远近来排序后确定其他用户距离当前用户的距离,以此来展现实时数据。
短视频app开发在大多数的思路就是在代码查询时,先从数据库中把先前用户发布视频时的经纬度跟其他数据一块查出来,然后通过距离算法计算出与当前用户经纬度之间的距离,然后再通过计算的结果进行排序,这样无疑会增加代码的计算过程和运算周期,在数据量大的情况下运行效率也会大打折扣。
那么在短视频app开发中,我们可以有更好的优化方法,就是在数据查询时就将我们需要计算的结果查询出来,这样就可以减少一步,当数据量大的时候,这一步就显得非常重要了。既然有了思路,那么,从哪里来解决呢?答案就是在数据库中。以MySQL数据库为例,在数据库中,有以下几项:
在这里插入图片描述
我们通过点击函数,会有函数的相关操作
在这里插入图片描述
点击新建函数:
在这里插入图片描述
类型选择函数,点击完成
在这里插入图片描述
在BEGIN和END之间写入距离计算方法,并通过RETURN 将计算结果返回。
注意:参数列表、返回类型及函数类型要做相关配置。
在这里插入图片描述
点击保存时为方法起个别名即可,这里我们起名为getDistance,那么此函数就会出现在数据库函数列表中。】
在这里插入图片描述
在程序读取数据中,我们就可以直接使用该数据库函数进行数据查询了

->select("uid,avatar,avatar_thumb,user_nicename,title,province,city,stream,lng,lat,pull,isvideo,thumb,islive,type,type_val,game_action,goodnum,anyway,getDistance('{$lat}','{$lng}',lat,lng) as distance") ->order("distance asc")->limit($start,$pnum)->fetchAll();

这样,我们在数据查询时就已经通过getDistance方法将距离计算好了,直接就可以通过该结果将数据进行排序,简单快捷。
以上就是短视频app开发中关于距离计算和数据查询时的优化,如果有其他问题或技术探讨,欢迎关我们注,我们会定期更新行业热门数据分析和代码技术文档,欢迎大家共同探讨,共同进步!

猜你喜欢

转载自blog.csdn.net/yun_bao_2144899870/article/details/88352292