zoukankan      html  css  js  c++  java
  • 优化之——查询数据库

          紧张的工作中恰好有点空闲的时间,就认真看着自己写的代码,想想哪里可以“优化”一点……(此灵感之一来源于自己的脑子里一直记得‘优化’这两个字,到后期就会看看哪里可以优化,之二便是这几天‘甜到大家的’《微微一笑很倾城》中看到大神他们为了项目中的优化问题,废寝忘食的干劲,联想到自己就觉得也应该向他们一样,结果要求完美一点)。那就总结一下自己少之又少的优化方案吧?

    先看一段代码: 

    let usersData = await this.model("users).field("sids").select()

         其实我的期望目标是:查询users表中字段sids中是否包含某一个值。起初在自己刚做的时候,就仅仅是在users表中查出了字段stids中所有的值,然后再一个一个遍历,取出每个sids的值,再利用字符串前后加逗号的方法来判断所给出的id是否在其中。待到今天再回头再回头看这一段代码的时候,再加上大神同事的指点,上面的摇身一变就成酱紫了:

    let usersData = await this.model("users").field("sids").where({sids:["like","%"+id+"%"]}).select();

         以上字段stids和sids数据类型一样,保存在数据库的都是用逗号隔开的字符串,所以效果是一样的。用上面的这一行代码替代最开始的那一句,同样是查询数据库,但是明显后者比前者精确多,也省去了遍历比较的麻烦,性能优化目的也达到了!

    总结:

    在进行数据库查询时,尽量少避免循环遍历什么的,能直接解决问题的就不要分开步骤写,不仅麻烦也会让别人看起来费劲的!

  • 相关阅读:
    w3cscholl的在线代码编辑工具2
    w3cscholl的在线代码编辑工具
    关于 stl的内存分配的深浅拷贝
    色彩模式与色彩空间
    mediacoder固定质量CRF
    集合加泛型的类型转换
    JQuery事件绑定bind、live、on、trigger
    JS构造函数中有return
    SSA与ASS字幕
    同步、异步、阻塞、非阻塞区别与联系
  • 原文地址:https://www.cnblogs.com/zhengyeye/p/5846715.html
Copyright © 2011-2022 走看看