zoukankan      html  css  js  c++  java
  • 网站访问量大+数据量大=>看似简单的SQL语句也会搞挂系统

          一个简单的SQL语句:select count(1) from tableName with(nolock) where columnA=A and columnB=B and columnC=C,被一个关键页面调用,虽然加了Memcache缓存,但由于数据结构设计问题,造成了数据库服务器CPU负载高达100%,关键页面响应超时,造成极其不好的影响。

          究其原因,缺少索引,数据结构设计之初,没有为该表建立索引,而后又忽略了该表仅测试数据就达到五六百万级别,以每天25万左右的速度增长。测试时,由于没有访问量,性能问题没被发现;而上线前的压力测试,由于测试帐号只有有限的几个,而系统根据帐号增加了Memcache缓存,因此该问题又被忽略了;直到系统上线第二天,真实的用户访问量上来了,该问题才暴露无遗,客服电话很快被打爆。

          为了彻底解决该问题,花费了几个工作日,血淋淋的教训。如果开发之前设计好数据结构建好索引、如果开发测试的时候关注下数据量、如果把写好的SQL语句放到查询分析器分析下性能...做设计写程序,意识不能少,开发前的设计要做到位,开发流程要把握好,否则发生杯具只能自己埋单了。

  • 相关阅读:
    uva 557 Burger
    uva 1639 Candy (对数处理精度)
    uva 10288 Coupons (分数模板)
    uva 12230 Crossing Rivers
    [USACO5.4] Telecowmunication
    epoll讲解--转自知乎
    多线程ExecutorService中submit和execute区别
    google Guava包的ListenableFuture解析
    git commit 时出现:please enter the commit message for your changes
    Git常用命令
  • 原文地址:https://www.cnblogs.com/freshman0216/p/1866788.html
Copyright © 2011-2022 走看看