• 【Five-Minute Share】“请先了解所使用的工具 ,磨刀不误砍柴工”


    数据是应用系统的血液,没有数据的系统应用价值是非常有限的。经过多年的观察发现,身边很多的程序开发人员在开发应用系统的时候,都是按照标准SQL语法及应用方法去进行数据库设计,并进行应用开发的,没有任何的针对性。这种开发方式往往会引发的一个问题就是:试用阶段功能正常,但是业务量一上来后就开始性能问题就遍地开花。曾经遇到有一个应用系统,业务有一个多线程并发、高频单表查询的数据上报服务。而每次开启这个服务,服务器CPU资源就一路飙升到90%以上,居高不下,整个系统都慢了。开发商最开始的时候抱怨是服务器的配置不行,结果要求甲方购买了一台新服务器。其实我本来是要去帮他们做数据迁移的,结果迁移完了以后,服务一跑起来,cpu还是一直在70%以上。甲方怒了,开发商急了,一口咬定就是数据库的问题,他们的程序没有问题。被坑了一把,只好自证清白。。。后来一看代码,功能及SQL都很简单,大致就这么一句:String sql="SELECT * FROM XXX WHERE ID="+id;其中id是变量,每一句都是不同的值。这样子就意味着什么呢?意味着每一次请求都会被数据库认为是一个新的SQL,需要重新进行解析,而且还是高频率,高并发的情况下,能不高么?于是赶紧叫开发人员将SQL处理改成预编译的处理方式:String sql="SELECT * FROM XXX WHERE ID=?";把原来的id用占位符的方式进行处理,这样数据库就只需要在第一次请求进行解析,后面的请求都可以复用了。修改程序以后,重新启动服务,cpu一直保持在20%左右,主要问题得到解决。由于咱只是友情客串,搞掂这个就赶紧撤人了,至于开发商后面是怎么跟甲方交代的咱也不知道了(o^^o) 在开发的过程中,除了数据库,我们还会需要使用各种各样的平台和工具,不要盲目地去开工,要先了解它们的“脾气和习性”,这样才能充分发挥出它们的潜力,更好的应用到我们的系统当中。

  • 相关阅读:
    vux 数据模拟mockjs的使用
    vux 配置颜色问题
    vue-router 学习
    vue 学习笔记
    点击加载更多
    table td 固定宽度
    js scroll 滚动连续多次触发事件只执行一次
    Merge into的注意点之ORA-30926: 无法在源表中获得一组稳定的行?
    js页面中取值的注意点
    insert into的方式
  • 原文地址:https://www.cnblogs.com/o0JSP/p/8326361.html
Copyright © 2020-2023  润新知