一天有10W以上IP 访问我的网站;每个IP我都操作XML文件;(这里暂不讨论时候该用数据库来记录访问信息);
   请给出相应处理代码,或者解决办法;
XML结构如下:
<?xml version="1.0" encoding="utf-8" ?> 
<data>
  <item id="1" ip="117.65.119.212" url="http://www.jyss.net/MediaAD/PLD/PLD.aspx?AID=1&MEDCOD=00004" btime="2010-4-17 0:03:36" etime="2010-4-17 0:03:36" scroll="0" ADID="1" mediaID="4" mediaName="开屏" doOrder="0" /> 
  <item id="2" ip="189.78.147.178" url="http://www.jyss.net/MediaAD/PLD/PLD.aspx?AID=1&MEDCOD=00004" btime="2010-4-17 0:04:56" etime="2010-4-17 0:04:56" scroll="0" ADID="1" mediaID="4" mediaName="开屏" doOrder="0" /> 
  <item id="3" ip="119.62.4.67" url="http://www.jyss.net/MediaAD/PLD/PLD.aspx?AID=1&MEDCOD=00004" btime="2010-4-17 0:05:38" etime="2010-4-17 0:05:38" scroll="0" ADID="1" mediaID="4" mediaName="开屏" doOrder="0" /> 
<data>

解决方案 »

  1.   

    数据库其实有很多种。我把对象的持久化,并且提供检索的机制都叫做数据库,而并不限于关系数据库。例如IBM就有一种xml数据库产品。但是你所说的那个东西(一个xml文件)太简单了,没有基本的多用户并行修改数据的背景技术可用。
      

  2.   

    你要求可靠性吗?如果不要求,可以在内存中来保存,然后每隔1分钟(或者系统Idel较长时间以后)异步地保存一个xml数据文件备份。
      

  3.   


    哥们 别搞得太深奥 太复杂了。。我既然发帖在 ASP.NET板块 在没有指明用的其他数据库的情况下 默认就是SQL SERVER  数据库。我其实要的答案 很简单 不知道就我上面那种格式的文件操作,能否有办法解决我的这种高访问量实现。
    如果真的不能用这种文件的形式来存储,那用SQL SERVER能解决吗?(我觉得这么高的访问量用读写数据库的操作也是很要命的操作!
      

  4.   

    数据库操作
    ReaderWriterLock   
    多个执行线程,分割文件
      

  5.   


    如果我的问题是这样:
    我要记录网站每天5万左右IP访问的信息,用SQL SERVER 和文件形式哪种好?
    是不是大家告诉我的答案是用:SQL SERVER来处理?
      

  6.   

    可以进行分割。根据一定的hash算法,写入到不同的xml文件
    或者利用异步,比如MSMQ,进行统一更新
      

  7.   


    我从来不用SQL Server。我只使用开源数据库,并且性能远远高于SQL Server,或者虽然性能并不比SQL Server高多少但是远远比它好用的数据库。
      

  8.   


    我知道SQL 不是最好的 ,但是我只能找我熟悉的来用。。
      

  9.   

    你已经自己回答了。其实不管做什么,如果你3天之内决定不下来到底还有没有更完美的东西出现,就先做出一个产品级的东西然后进行压力测试。不用仅仅去空想了。今天xml文件不可能的事情也许3个月后成为可能,但是这还不能成为你不用SQL Server的借口。
      

  10.   

    我给你的建议,做出一个SQL Server的实现,再做出一个xml文件的实现,然后再删除其中一个。这要比你讨论之后再做出一个来,往往更快更好。
      

  11.   

    我是新手!大家别笑我。谢谢!
    这样可以不?
        在Application里设置计数器,并添加多个DataSet对象,每个用户访问时,根据计数器当前值和预先分好的计数段决定向哪个ds对象里添加记录,定时将ds对象合并并按访问时间排序。并写入文件。
      

  12.   

    我觉得这已经不是代码的问题能解决了,下面是我的理解,不知道是否正确:
    1、sp1234说的:使用同一时间只允许一个客户端修改数据的数据库都是错误的选择,更何况使用文件呢。
    xml只适合1W以下的数据处理,大了的话没有数据库好用。
    2、微软的pet4已经给了很明确的解决办法,队列,如果你的服务器好,是不会让你的客户感觉到延迟的。
    3、如果有经济基础,可以为你的网站配备单独的服务器,经常玩游戏的人深有体会。
    4、从设计角度考虑,是否网站的设计架构可以用其他解决办法实现。