私は自分のウェブサイトのために何かをしようとしています。具体的には、稼働時間のためにスクリプトを作成しようとしています。
テーブルからパーセントを読み取るスクリプトであるリーダーがあります。
これは、リレーショナル データベースを効率的に使用する方法ではありません。代わりに、(少なくとも 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
引数を使用して、これらの統計を表示するインターフェイスで使用されるデータをフィルター処理できます。
$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";
}