本文实例讲述了node省市区三级数据性能测评。分享给大家供大家参考,具体如下:
闲来无事,测试下node和egg
首先是数据库,大概长这样
然后是代码
'use strict';
const Controller = require('egg').Controller;
class HomeController extends Controller {
async index() {
const { ctx } = this;
ctx.body = 'hi, egg';
}
async city() {
const { ctx } = this;
console.time("sql")
const provinces = await this.app.mysql.select('provinces')
const citys = await this.app.mysql.select('cities')
const areas = await this.app.mysql.select('areas')
console.timeEnd("sql")
console.time('cal')
provinces.forEach(province => {
let provinceid = province.provinceid
province.children = []
citys.forEach(city => {
city.children = []
if (city.provinceid === provinceid) {
province.children.push(city)
}
let cityid = city.cityid
areas.forEach(area => {
if (area.cityid === cityid) {
city.children.push(area)
}
})
})
})
console.timeEnd('cal')
const result = {
status: 1,
data: provinces,
}
ctx.body = result;
}
}
module.exports = HomeController;
执行时间:
接着改进
'use strict';
const Controller = require('egg').Controller;
class HomeController extends Controller {
async index() {
const { ctx } = this;
ctx.body = 'hi, egg';
}
async city() {
const { ctx } = this;
console.time("sql")
let provinces = await this.app.mysql.select('provinces')
let citys = await this.app.mysql.select('cities')
let areas = await this.app.mysql.select('areas')
console.timeEnd("sql")
console.time('cal')
for (let i = 0, len = citys.length; i < len; i++) {
let city = citys[i]
city.children = []
let cityid = city.cityid
for (let j = 0, len1 = areas.length; j < len1; j++) {
let area = areas[j]
if (area.cityid === cityid) {
city.children.push(areas.splice(j, 1)[0])
len1--
j--
}
}
}
provinces.forEach(province => {
let provinceid = province.provinceid
province.children = []
for (let i = 0, len = citys.length; i < len; i++) {
let city = citys[i]
if (city.provinceid === provinceid) {
province.children.push(city)
citys.splice(i, 1)
len--
i--
}
}
})
console.timeEnd('cal')
const result = {
status: 1,
data: provinces,
}
ctx.body = result;
}
}
module.exports = HomeController;
本次优化结果
可以看到,在组装数据的过程中,时间缩短了近20倍!
后续版本继续优化,也欢迎有相关方面经验的大神留言探讨,给出更好的方案。
希望本文所述对大家node.js程序设计有所帮助。
标签:
node,省市区,三级数据
免责声明:本站文章均来自网站采集或用户投稿,网站不提供任何软件下载或自行开发的软件!
如有用户或公司发现本站内容信息存在侵权行为,请邮件告知! 858582#qq.com
暂无“node省市区三级数据性能测评实例分析”评论...
更新动态
2025年11月03日
2025年11月03日
- 小骆驼-《草原狼2(蓝光CD)》[原抓WAV+CUE]
- 群星《欢迎来到我身边 电影原声专辑》[320K/MP3][105.02MB]
- 群星《欢迎来到我身边 电影原声专辑》[FLAC/分轨][480.9MB]
- 雷婷《梦里蓝天HQⅡ》 2023头版限量编号低速原抓[WAV+CUE][463M]
- 群星《2024好听新歌42》AI调整音效【WAV分轨】
- 王思雨-《思念陪着鸿雁飞》WAV
- 王思雨《喜马拉雅HQ》头版限量编号[WAV+CUE]
- 李健《无时无刻》[WAV+CUE][590M]
- 陈奕迅《酝酿》[WAV分轨][502M]
- 卓依婷《化蝶》2CD[WAV+CUE][1.1G]
- 群星《吉他王(黑胶CD)》[WAV+CUE]
- 齐秦《穿乐(穿越)》[WAV+CUE]
- 发烧珍品《数位CD音响测试-动向效果(九)》【WAV+CUE】
- 邝美云《邝美云精装歌集》[DSF][1.6G]
- 吕方《爱一回伤一回》[WAV+CUE][454M]



