中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

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

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

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

揭东县| 灵山县| 盐池县| 阿城市| 子洲县| 托克逊县| 明光市| 察隅县| 紫阳县| 连州市| 周口市| 游戏| 太白县| 丹江口市| 崇文区| 肥西县| 承德市| 博罗县| 鄯善县| 肇州县| 钟山县| 岫岩| 抚宁县| 铜山县| 清水河县| 五大连池市| 瓦房店市| 广丰县| 栾城县| 台中市| 临高县| 阿尔山市| 无极县| 小金县| 东台市| 卢龙县| 沅陵县| 灌云县| 贵阳市| 忻州市| 伊川县|