當前位置:首頁 > IT技術 > 數據庫 > 正文

如何動態(tài)變化數據庫數據
2021-10-12 14:23:36

1. 情況說明

環(huán)境:Linux服務器。

數據來源:snmp命令行能得到數據,獲取到服務器的CPU利用率,然后通過Linux命令能寫入數據庫,且能動態(tài)更新數據。

數據要求:通過后端框架傳遞給前端的有三十條數據,是一個小時內的服務器CPU利用率記錄,每兩分鐘更新一次。

初始想法:數據庫設計就只有一個列,存儲現在的服務器CPU利用率,在后端邏輯里面設計一個數組來存儲之前的數據,然后動態(tài)更新那數組,后來發(fā)現根本不可行(或者可能是可行的,但我不知道咋搞)。以下原因分析內容是我猜的,因為后端好像是前端每訪問一次,才返回前端一個結果,訪問一次才運行一次,所以沒法一直運行。但是那數組肯定要一直都存儲的是過去30次記錄啊,沒法一直運行就沒法實現數據存儲更新。還有一個問題是我也剛學,就會用SpringBoot框架,但不懂其中細節(jié)原理,也不知道該把數組定義放在哪。

2. 解決方法

方法:數據庫設計時設計3個列(利用率,數據id,當前時間)分別存儲過去30個數據,id是更新數據庫的時候能分清哪條數據是哪條,當前時間就是給人看的。然后寫一個觸發(fā)器函數,每插入一個數據時,就刪除最前面的那條數據,然后更新前面的數據的id。

數據庫表設計如下:

?

?

觸發(fā)器設計如下:

?

?里面有個temp表,原因是如果mysql數據庫向原表? 插入/更新 數據表之后觸發(fā)的函數還是?插入/更新 該數據表,就會陷入一種死循環(huán),所以設計了一個和CpuUseRatio一樣的表,只存儲一條數據,即當前的最新CPU利用率,然后更新temp表時,就更新CpuUseRatio存儲數據。

?

?

?

?最終效果

?

本文摘自 :https://www.cnblogs.com/

開通會員,享受整站包年服務立即開通 >