Linux
遠端自動優化mysql數據庫
無論如何,我都不是 mysql 或 sql 專家,對 FreeBSD 也不太了解。我們有一台伺服器,它經常需要一個表來刪除數據 < 一個只留下 1 個月數據的時間範圍。典型的問題是表太大,然後不能寫。
遠端輸入時只有兩個命令:
mysql -h ABCD -u 使用者 -p 半徑
mysql> DELETE FROM calls WHERE event_date_time < '2014-01-01 00:00:00'; mysql> optimize table calls;
我必須通過一個 jumpbox 來完成這一切——我無法訪問該伺服器的底層作業系統。例如,我如何設置一個 cronjob 每兩個月執行一次?
謝謝
對於 cron 條目:
0 1 1 */2 * root /bin/optimize.sh
以上執行時間為每第二個月的第一天的 01:00
腳本(/bin/optimize.sh):
#!/bin/bash FIRST_DAY_OF_MONTH=$( date -d "`date`" +%Y-%m-01 ) DAY="$FIRST_DAY_OF_MONTH 00:00:00" mysql -uUSER -pradius -h<host> -e "DELETE FROM calls WHERE event_date_time < '$DAY';" mysql -uUSER -pradius -h<host> -e "optimize table calls;"
以上將採取任何月份,找到第一天,並刪除到該點。顯然,您可以修改它以滿足您的需要。
注意: <host>參數需要填寫