我们现在将要用ASP.NET开发的一个Web信息管理系统,大约涉及10万个用户,
应该设计什么样的软件架构与数据库表结构,或注意哪些问题,才能获得较高的访问效率?

解决方案 »

  1.   

    10万个,好强悍。MARK 一下啊,
    我现在做的是几千个帐户的系统。
      

  2.   

    作为技术探索,我随便说说:不太看好Windows+ASP.NET。Windows群集版本的授权很贵,同样级别的Linux却很便宜。
    而且Linux更加成熟。大规模系统可以通过配置Cache Server以及冗余的AppServer和DataServer来解决性能问题。对于数据库的设计,关键是减少关系依赖,一些数据查询使用非同步方式,增加冗余数据,分库等方式进行。打个比方,如果统计访问人数,这个完全可以每天统计一次,而不是每次查询都统计。
    如果有一个用户评论栏目,可以采用将用户名硬写入评论里面而不是记录ID,然后通过关系再去查询。
    一些过时的数据,应该存入历史数据库,保证当前数据库数据量在一个合理的范围内。对于应用服务器,可以增加缓存,减少对数据库的访问。一些内容可以静态化。可以在不同的IDC建立CDN,为不同的线路访问做优化。对于日常作业可以安排在访问量低的时段进行。对于你的程序,关键是消除不可并行的部分,比如避免去独占访问共享的资源,考虑是否采用队列的方式。其次是对程序的关键代码进行优化。通过性能优化软件检查程序中访问最频繁的代码,消除瓶颈。基础软件方面,要考察软件的可伸缩性。当然,需要足够数量的硬件和网络带宽。
    话说回来,大学实验室好像还没有搞出这样规模的系统。不太看好没有人员,没有资金,没有经验的团队来搞。
      

  3.   

    可能十万让人感觉这个系统很大,
    是这样的,这个项目是我们所在这个城市的某个政府部门管理下属人员的一个系统,涉及全市的该政府部门下的人员,大约有10万人,这个不是一个公用的系统,是他们单位内部使用的,他们单位地理位置上分布在全市各区,有专用网络。
    这个系统需要存储这些人员的相关数据。
    caozhy 的回复很有帮助,谢谢!