91超碰碰碰碰久久久久久综合_超碰av人澡人澡人澡人澡人掠_国产黄大片在线观看画质优化_txt小说免费全本

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

node省市區三級數據性能測評實例分析

發布時間:2020-08-26 23:19:33 來源:腳本之家 閱讀:192 作者:蒼青浪 欄目:web開發

本文實例講述了node省市區三級數據性能測評。分享給大家供大家參考,具體如下:

閑來無事,測試下node和egg

首先是數據庫,大概長這樣

node省市區三級數據性能測評實例分析

然后是代碼

'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;

執行時間:

node省市區三級數據性能測評實例分析

接著改進

'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;

本次優化結果

node省市區三級數據性能測評實例分析

可以看到,在組裝數據的過程中,時間縮短了近20倍!

node省市區三級數據性能測評實例分析

后續版本繼續優化,也歡迎有相關方面經驗的大神留言探討,給出更好的方案。

希望本文所述對大家node.js程序設計有所幫助。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

巩义市| 即墨市| 上饶县| 志丹县| 新晃| 绥德县| 石嘴山市| 赤峰市| 清原| 宜章县| 闸北区| 新源县| 罗平县| 庄河市| 察隅县| 大冶市| 石屏县| 邳州市| 定安县| 五家渠市| 荆门市| 陆丰市| 越西县| 横山县| 彭水| 琼中| 大荔县| 屏东市| 辽宁省| 高平市| 化隆| 绥棱县| 青铜峡市| 游戏| 灵山县| 靖江市| 大城县| 丹凤县| 崇礼县| 美姑县| 吉隆县|