ここに私の質問のために作成された無料の例があります:
+5 サーバーのステータスをチェックする php スクリプトを 15 秒ごとに実行します。ping
、status
、version
および を取得しmotd
ます。データは 2 週間保存する必要があり、この期間が経過すると削除できます。
現時点では、次のように保存します。
Table 1:
server_ID | name | ip | last_update
Table 2:
ID | server_ID | status | ping | version | motd | timestamp
この方法では、何も二重にならず、サーバーの名前を簡単に変更したり、IP を変更したりできると思います。
しかし、古い行を削除するにはどうすればよいですか? スクリプトを実行するたびに (15 秒ごとに) これを行うのは多すぎますか?14*24*60*4 = 80640 rows per server for the two weeks
または、最新のデータと 2 週間の折れ線グラフを表示するためのデータを取得できるようにするには、どのようにデータを保存すればよいですか?
1 時間ごとのデータを含む 3 番目のテーブルかもしれません。
編集:
回答ありがとうございます。これはどうですか:
15 秒の更新で、すべてのデータを表 1 に入れましたが、更新したので、サーバーごとに 1 行しかありません。
次に、このトリガーを毎時間使用し、現在のデータを新しいテーブルにコピーし、そこから 2 週間以上経過したデータをすべて削除しますか?
現在、表 1 の server_ID と表 2 の ID を主キーとして設定していますが、代わりにタイムスタンプを主キーとして設定する正当な理由はありますか?