本文实例讲述了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省市区三级数据性能测评实例分析”评论...
更新动态
2024年04月29日
2024年04月29日
- 归龙潮蜃境宝库怎么玩 材料副本介绍
- 鸣潮散华配队推荐 阵容怎么搭配
- 剑灵2手游职业推荐攻略 玩什么职业好
- dnf神话自选礼盒选什么
- dnf称号封装需要多少个蜜蜡
- dnf攻坚战单人模式怎么打
- 《庄园领主》首发6.6折,杉果春促史低游戏推荐
- 你口味这么重吗 囧图 这个姿势是会拉到座圈上的吧
- 蛋究竟要怎么玩才好?动图 排球少女的臀部过于肥美
- 翁倩玉.1974-温情满人间【海山】DTS【WAV分轨】
- 范琳琳.2012-爱与海【大藏】【WAV+CUE】
- 萧淑慎.2002-爱恨萧淑慎【滚石】【WAV+CUE】
- 618淘宝京东均取消预售机制 618提前开打
- 2024五一档新片预售票房破亿:《九龙城寨之围城》登顶
- 唐尼乐意重演钢铁侠?罗素兄弟称不知该如何做到这一点