zoukankan      html  css  js  c++  java
  • 2500万测试

    2500万条数据测试
    select count(id) as total from content where status=1;
      49秒钟,cpu暴涨
    select id from content where status=1;
      30秒钟左右
    select count(id) as total from content where status=1 and sort=1 and ifphoto = 1 and ifattr=1
      48秒钟,cpu暴涨20%
    select id as total from content where status=1 and sort=1 and ifphoto = 1 and ifattr=1 limit 100000,100
      14秒钟,cpu暴涨20%
    
      分页4种处理方法
      这样考虑的于是就有了下面四个优化的建议来提高性能
    首次查询的时候缓存结果。这样情况就变得简单了,无论是结果条目的数量,总共的页面数量,还是取出其中的部分条目。
    不显示总共有多少条目。Google搜索结果的分页显示就用了这个特性。很多时候你可能看了前几页,就够了。那么我可以这样,每次我都把结果限制在500条(这个数据越大 资源消耗越大)然后你每次查询的时候,都查询501条记录,这样,如果结果真有501个,那么我们就显示链接 “显示下500条记录”。
    不显示总页面数。只给出“下一页”的链接,如果有下一页的话。(如果用户想看上一页的话,他会通过浏览器来回到上一页的)。那你可能会问我“不显示总页面数”怎么知道是不是有下一页呢?这里有一个很好的小技巧:你在每次显示你当前页面条目的时候你都多查询一条,例如你要显示第11-20个条目时,你就取出11-21条记录(多取一条,并不显示这多取的内容),那么当你发现第21条存在的时候就显示“下一页的链接”,否则就是末页了。这样你就不用每次计算总页面数量了,特别是在做缓存很困难的时候这样做效率非常好。
    估算总结果数。Google就是这么做的,事实证明效果很好。用EXPLAIN 来解释你的SQL,然后通过EXPLAIN的结果来估算。EXPLAIN结果有一列”row”会给你一个大概的结果。(这个办法不是处处都行,但是某些地方效果是很好的)这些办法可以很大程度上减轻数据库的压力,而且对用户体验不会有什么影响。
      这些办法可以很大程度上减轻数据库的压力,而且对用户体验不会有什么影响。
      
    select count(id) as total from content where status=1 and sort=1 and ifphoto = 1 and ifattr=1 and id>100000 and id<100100
      0秒钟
    select id as total from content where status=1 and id>100000 and id<100100
      0秒钟
    select id as total from content where status=1 and ifphoto =1 and  id>100000 and id<100100
      0秒
    select * from content where status=1 and ifphoto =1 and  id>100000 and id<100100
      0秒
    select * from content where status=1 and ifphoto =1 and id>100000 and id<100100 order by ifphoto desc
      0秒
    select t.*,c.* from content as c join type as t where t.typeid = c.typeid and t.typeid = 1 and c.id>1000000 and c.id < 1001000 order by c.id desc
      0秒
    
    select * from content where id=2300000
      0秒
    select t.*,c.* from content as c join type as t where t.typeid = c.typeid and t.typeid = 1
      49秒
    select t.*,c.* from content as c join type as t where t.typeid = c.typeid and t.typeid = 1 order by c.id desc limit 100000,1000
      3秒
    select id from content order by id desc limit 1
      0秒
      
    between 介与两个已知值之间的值 select id from tb where price between 10 and 50
    in  符合给定列举值的那些值 select phone_num from tb where state IN ('北京','上海')
    做总数估算explain select * from content 
      0秒
    查看当前的数据量show table status like 'content';
    

      

  • 相关阅读:
    2015/8/28 回校正常学习工作
    Asp.net自定义控件开发任我行(3)-Render
    Asp.net自定义控件开发任我行(2)-TagPrefix标签
    Asp.net自定义控件开发任我行(1)-笑傲江湖
    ET采集阿里妈妈淘宝客商品规则
    淘宝API还能用来采集数据吗?taobao.item.get 接口还能用吗?
    淘宝api升级,无法采集淘宝的数据,taobao.item.get 和taobao.taobaoke.items.get都不能用
    用firefox浏览器访问localhost,apache http server 已停止工作
    淘宝客网站怎么批量采集淘宝商品,方维采集淘宝数据思路
    方维购物分享系统怎么样,方维系统安全性检测
  • 原文地址:https://www.cnblogs.com/wangzong/p/3249829.html
Copyright © 2011-2022 走看看