业务需求是这样的
有N个数据采集点(N>1000), 这些数据采集点每60秒向服务器发送一次数据
每天产生1440*N条数据
怎么样设计这个数据库呢?

解决方案 »

  1.   

    参考:
    http://topic.csdn.net/u/20111207/10/8835ae44-2f46-40c1-b1bb-961becaf14b4.html?83208
      

  2.   

    那上面虽然没有最后说解决的办法,但有很多建议值得你参考,所以介绍给你.
    如果你的数据量不大(不知道你一次采集多长时间),那完全可以放到MSSQL数据库里,表的结构类似:采集数据(编号,采集点,时间)你可以把一段时间(比如一个月)的数据放在一个表里,其实如果时间不长,全放在一个表里也行的.
      

  3.   

    老大 没说 历史数据要保存多久 ,我自己预计是永久保存
    这个业务就是数据条数比较多 每条的信息量都只有几百个字节假如 有10000个采集点 一个月就20亿条 数据  mssql 撑的住吗?
      

  4.   

    又升到 10000个采集点了?我们来算一下:
    id bigint 8字节
    dt smalldatetime 2字节 或 datetime 4字节
    msg char(500)  你说的是几百字节就算每条记录500字节
    10000 个采集点,每天1440条
    10000*1440*500*8=57.6G你的数据量比跟你说的那个链接的数据量差不了太多了!你有那么多的数据量吗?我们再来算算数据存入速度够不够:
    每分钟,一万个采集点,这涉及到你的数据是如何采集的,如何转变为数据库中保存的数据,如果你的客户端是将数据合成了再保存到数据库的,那倒没关系,如果是一条条送到数据库的,那每条记录:
    60*1000/10000=6mS
    有点短了,可能来不及存进去.
      

  5.   

    500*8 没有这么多哦 其实就一个id, 16 一个外键 16 2个浮点  64 2个datatime 816+ 16+ 64 + 8 =104个 字节我们打算每5000个终端 就增加一个服务器 这样硬件问题应该不大  就看看表怎么设计