日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

优化项目中树结构数据的操作

發(fā)布時間:2025/3/8 编程问答 16 豆豆
生活随笔 收集整理的這篇文章主要介紹了 优化项目中树结构数据的操作 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.

最近在優(yōu)化一段代碼,前端使用的是Ext3,頁面中有一個樹形菜單。把項(xiàng)目放在本地跑,加載這個樹形菜單的速度似乎還湊合,但是在正式環(huán)境中點(diǎn)開這個頁面,這個樹形菜單加載的就很慢了,很明顯的感覺到卡殼了一下,于是去查看項(xiàng)目代碼,大致思路是這樣的,如下:

通過遞歸的方式不斷去執(zhí)行一個SQL,這個SQL是select ... from tb_tree tt where tt.parent_id = ? 這樣的結(jié)構(gòu),將查出的數(shù)據(jù)拼成json串放前端Ext展示,表象看起來好像還行,思路相對還是比較清晰的。

但是,服務(wù)器放在了合肥,我在北京,每次這么遞歸查詢都相當(dāng)于從北京向合肥發(fā)請求,這么一來肯定是要消耗時間的,好在表數(shù)據(jù)不算多,整體存放在表中的樹結(jié)構(gòu)不算復(fù)雜,否則,難以想象。故優(yōu)化勢在必行。

我想的方法比較直接,一次性查出所有數(shù)據(jù),減少查庫的頻率,畢竟數(shù)據(jù)量也就那么200多條。表結(jié)構(gòu)就是常規(guī)的id、text、parent_id這樣的,那我就想干脆通過Java構(gòu)造一顆樹,就是將SQL的這棵樹轉(zhuǎn)成Java的樹,轉(zhuǎn)好之后拼個json串豈不是so easy

寫個樹的實(shí)體類,我就用了這么幾個屬性


//getter、setter方法

還有一個生成樹結(jié)構(gòu)的工具類,里面有一個構(gòu)造樹的函數(shù)

通過構(gòu)造樹的方法將數(shù)據(jù)庫中的數(shù)據(jù)轉(zhuǎn)變?yōu)镴ava樹,再變成json格式交給Ext來處理就大功告成啦

經(jīng)測試,代碼優(yōu)化前生成的json串耗時332毫秒,優(yōu)化后只有27毫秒

總結(jié)

以上是生活随笔為你收集整理的优化项目中树结构数据的操作的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯,歡迎將生活随笔推薦給好友。