Mysql
覆蓋 MySQL 數據庫只儲存 1 個月的數據
我們在只有 4GB 的小記憶體(磁碟儲存不足)的硬體上記錄數據。
我們只要求將數據儲存 1 個月,然後以首先覆蓋舊數據的方式進行覆蓋。硬體上的記憶體很小,所以不能無限期地繼續記錄。
我們正在使用 MySQL 數據庫,它執行的硬體並不總是像在車輛中那樣通電。數據將在圖表中查看,以顯示一段時間內的歷史數據。
我想到了一些選項,但不確定如何執行它:
假設我將在一個月內記錄 100 萬行數據
當表 (table1) 達到 100 萬行時,將此表移動到另一個表並啟動新表 (table2)。當 table2 達到 100 萬行時。刪除 table1,將 table2 移動到新表並創建 table3 等…
這樣至少有 1 個月的參賽作品。
第二種選擇(不確定是否可能):
當表達到 100 萬行時,它再次從第 1 行開始覆蓋。
一個簡短的輪換腳本/事件可能如下所示:
drop table if exists table2; rename table table1 to table2; create table table1 like table2;
使用
PARTITION BY RANGE(TO_DAYS(..))
.DROP PARTITION
每晚都有一個 cron 工作REORGANIZE PARTITION
。這樣,您可以自動擁有一個包含不超過一天的“表格”。