zoukankan      html  css  js  c++  java
  • 360多万条信息把一台服务器快拖卡了

    网站问题
      前些日子有用户反映"网站慢","网站打不开了"。。。自己看看确实比平常慢很多。

    网站概况及压力
      先简单介绍一下用户反映的网站,以便您对这个网站及数据库压力有个大致了解。

      该网站是一个分类信息网,压力理所当然的落在了信息处理上。针对信息处理,带给数据库的压力主要有两点:
    1.网站首页会读取信息表Info;
    2.信息列表页会读取信息表Info;
      据统计,这个时候信息表Info已有360多万条数据。每个用户访问网站首页或细信息列表页都必须从360多万条数据中
    找出想要的数据。从而造成了”网站慢“等诸多问题。
      从这个角度看,就当前的网站架构来说,360多万条数据已经成了这个系统所能承受压力的上限了。

    解决此类问题途径
      处理此类问题我们应该有所了解,诸如:优化网站架构,使用缓存,使用分布式等等。考虑到这些并不是本文重点,加

    上自己对这些不是很上手,所以就不叙述了。

    解决方法
      使用"分表法",所谓的"分表法"就是把信息表Info前最新的几万条或几十万条数据的主干取出来放另一个新的信息表NewInfo,

    尽量遵循"在保证让用户能完整看到信息的前提下,表NewInfo里存的字段,越少越好,也尽可能减少表连接。"的原则。这样网站

    首页和信息列表页显示数据就可以从NewInfo里读取。想一下从几万条取数据跟从几百万条中取数据当然是前者快了。也许您会有

    疑问,那Info中其他的数据不要了吗?别急,看完您也许就会理解这样做并非不可。

      当然,这样做也会对信息的修改带来一点麻烦(因为要保持数据的一致性)。但比较一下,你会发现利是大于弊的。

    小结

      分类信息网站在信息量大的情况下,每天都会有大量的信息出现。如果你要把几百万甚至几千万的数据都从数据库展现出来。

    又有哪一位用户会看的完呢。再者用户需要的是及时的信息。

      如果您有使用过"赶集网"或"58同城",您会发现它们的大部分信息来源也是当天的。

     

  • 相关阅读:
    Binary Tree Maximum Path Sum
    ZigZag Conversion
    Longest Common Prefix
    Reverse Linked List II
    Populating Next Right Pointers in Each Node
    Populating Next Right Pointers in Each Node II
    Rotate List
    Path Sum II
    [Leetcode]-- Gray Code
    Subsets II
  • 原文地址:https://www.cnblogs.com/paulhe/p/3865098.html
Copyright © 2011-2022 走看看