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

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

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

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

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

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

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

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

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

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

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

    小结

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

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

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

     

  • 相关阅读:
    Python 中的一些小技巧
    Java/Python/Elixir 正则库使用上的注意事项
    Scrapy 学习笔记(一)数据提取
    记第一次面试
    Spring Web MVC 笔记
    Java 单元测试
    Spring 笔记(四)AOP
    C 语言 进阶
    编程的智慧
    Spring 笔记(三)Bean 装配
  • 原文地址:https://www.cnblogs.com/paulhe/p/3865098.html
Copyright © 2011-2022 走看看