我需要保存很多个机房的温度值(精确到度即可),每个机房有好几个温度计,如果每条记录保存一次采样值,将很快超过MySQL能够承受的上限,目前我能想到的办法是:1、由于房间温度的变化是很慢的可以用时间加值的办法,2、用多表的办法,比如每个机房一个表,3、一个字段存储很多温度,但是查询和使用很不方便。不知道还有什么好办法特发此贴请高手指点。

解决方案 »

  1.   

    如果假设是机房的每个温度计 变化不大,甚至一天也不会有什么变化,则一种方式就是仅记录温度变化的那条记录。create table temprecords (
    id int not null auto_increment primary key,
    thermometerID int,
    changeTime timestamp,
    tempVal int
    );查询某时间点某个温度计的温度则可以select tempVal from temprecords where thermometerID=1 and changeTime<='2009-06-09 17:23:42' order by changeTime desc limit 1
    如果数据比较多,可建立索引 (thermometerID,changeTime), 或者就以 (thermometerID,changeTime) 为主键,取消id 字段
      

  2.   

    由于机房温度变化不是很大,我觉得可以每小时记录一次,数据表结构和楼主的是一样的
    如果是每小时计一次的话,为了更好地压缩存储空间,楼主也可以将每小时的采样温度以字符串的形式放在一个字段里,字段里的各个温度间用;或,或其他的符号隔开,然后用程序语言(PHP或JSP)中提供的字符串处理函数来分隔这个字符串,就可以读出相应的温度
      

  3.   

    当您的问题得到解答后请及时结贴.
    http://topic.csdn.net/u/20090501/15/7548d251-aec2-4975-a9bf-ca09a5551ba5.html