短視頻app開發中數據查詢的優化調整

在短視頻領域,當前正面臨着行業轉變和洗牌,有競爭優勢的可以繼續發光發熱,無法滿足市場需求的很快就被淘汰。那麼,一款好的短視頻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開發中關於距離計算和數據查詢時的優化,如果有其他問題或技術探討,歡迎關我們注,我們會定期更新行業熱門數據分析和代碼技術文檔,歡迎大家共同探討,共同進步!

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章