我有一個主數據庫,每天可存儲多達5000個新行。Cron作業在MySQL表格之間移動多行
我想要第二個數據庫在任何時候只包含最近30天的數據。
因此,我打算設置一個cron作業,定期轉儲30天以上的行並複製新的作業。
什麼是複製零件的最佳設計?
- 複製與MySQL的單獨
- 一個MySQL的導出到一個txt文件中的飛行,那麼MySQL的導入,然後刪除臨時文件
- 一個PHP腳本,通過行並複製它們一個迭代一個
我想魯棒性和CPU /內存使用率最低金額
我有一個主數據庫,每天可存儲多達5000個新行。Cron作業在MySQL表格之間移動多行
我想要第二個數據庫在任何時候只包含最近30天的數據。
因此,我打算設置一個cron作業,定期轉儲30天以上的行並複製新的作業。
什麼是複製零件的最佳設計?
我想魯棒性和CPU /內存使用率最低金額
最快和最可靠的方法是直接在MySQL中執行的轉移。下面是步驟涉及:
首先,創建第二個表:
CREATE TABLE IF NOT EXISTS second.last30days LIKE main_table;
接下來,插入記錄30天,或更新:
INSERT INTO
second.last30days
SELECT
*
FROM
main_table
WHERE
created >= CURDATE() - INTERVAL 30 DAYS
ORDER BY created;
最後,刪除記錄比老30天:
DELETE FROM
second.last30days
WHERE
created < CURDATE() - INTERVAL 30 DAYS
ORDER BY created;
這將是最好不要運行INSERT
和DELETE
陳述在同一時間。
如果數據庫都託管在同一臺服務器上。只需使用insert ... select
聲明。 這樣你可以最小化一切。 1查詢,並完成。