2011-03-25 63 views

回答

0

这不是一个使用关系数据库的非常有效的方法。我想,而是建议(与SQL侧至少),如下:

CREATE TABLE `servers` (
    `srv_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, 
    -- Additional Fields Omitted here. 
    PRIMARY KEY (`srv_id`) 
) 
ENGINE = InnoDB; 
CREATE TABLE `stats` (
    `stat_id` INTEGER UNSIGNED NOT NULL AUTO_INCREMENT, 
    `srv_id` INTEGER UNSIGNED NOT NULL, 
    `date` TIMESTAMP NOT NULL, 
    `uptime` INTEGER UNSIGNED NOT NULL, 
    PRIMARY KEY (`stat_id`) 
) 
ENGINE = InnoDB; 

这样,只要你喜欢,只要你喜欢,你可以记录许多措施,对尽可能多的服务器,然后使用SQL删除旧内容或保留旧内容,并使用WHERE参数来过滤显示这些统计信息的界面中使用的数据。

+0

嗯...好,谢谢:) – 2011-03-25 13:50:32

0
 $day = int(strftime("%j") % 5); 
     $key = 'day' . $day; 
     if($row[$key] == 0) 
     { 
      if($checkls && $checkgs) //if server is online update the percent 
       mysql_query("UPDATE s_stats SET ${key}=".($stats_row[$key] + 0.5)." WHERE srv_id=".$r[id]." ") or die(mysql_error()); //every 7.2 minutes add 0.5 percent 
      else echo "error day $day"; 
     } 
+0

啊,但现在的问题..每个服务器应该从拳头天.. INT(的strftime( “%J”)%5)启动可能是2,3, 4第一次.. – 2011-03-25 16:43:18

相关问题