搜索看看
数据库历史数据太多,导致系统运行比较慢,如何处理
有时候我们设置历史数据保留时间比较长,导致历史数据较多,会导致系统运行缓慢,这时候,
我们只要把如下的这些表数据清空就好啦,这些表都是监控历史数据,可以安全清空的
如果我们迁移或备份数据库时候,不需要这些历史监控数据,也可以不导出这些表的数据,或者可以清空掉
1、清空过程可能比较花费时间,我们稍微耐心等待,执行如下sql语句
清理之前先停止server
,清理完成后再启动server
如下sql是清理MySQL数据库2023-06-28 10:10:00之前的历史数据,我们可以修改这个时间参数,也可以去掉WHERE条件
-- 进程趋势图历史数据 DELETE FROM APP_STATE WHERE CREATE_TIME <= '2023-06-28 10:10:00'; -- 主机CPU使用率趋势图历史数据 DELETE FROM CPU_STATE WHERE CREATE_TIME <= '2023-06-28 10:10:00'; -- 自定义监控项趋势图历史数据 DELETE FROM CUSTOM_STATE WHERE CREATE_TIME <= '2023-06-28 10:10:00'; -- DOCKER监控趋势图历史数据 DELETE FROM DOCKER_STATE WHERE CREATE_TIME <= '2023-06-28 10:10:00'; -- 日志文件监控历史数据 DELETE FROM FILE_WARN_STATE WHERE CREATE_TIME <= '2023-06-28 10:10:00'; -- 主机内存使用率趋势图历史数据 DELETE FROM MEM_STATE WHERE CREATE_TIME <= '2023-06-28 10:10:00'; -- 主机系统负载值趋势图历史数据 DELETE FROM SYS_LOAD_STATE WHERE CREATE_TIME <= '2023-06-28 10:10:00'; -- 主机上下行速率趋势图历史数据 DELETE FROM NETIO_STATE WHERE CREATE_TIME <= '2023-06-28 10:10:00'; -- 服务接口趋势图历史数据,可选,根据需要来清理 DELETE FROM HEATH_STATE WHERE CREATE_TIME <= '2023-06-28 10:10:00'; -- 系统日志表数据,可选,根据需要来清理 DELETE FROM LOG_INFO WHERE CREATE_TIME <= '2023-06-28 10:10:00'; -- PING监控状态表数据,可选,根据需要来清理 DELETE FROM DCE_STATE WHERE CREATE_TIME <= '2023-06-28 10:10:00'; -- SNMP监控状态表数据,可选,根据需要来清理 DELETE FROM SNMP_STATE WHERE CREATE_TIME <= '2023-06-28 10:10:00';
如果是PostgreSQL数据库,日期函数有所不同,WHERE条件应该这么写
WHERE CREATE_TIME <= cast('2023-06-28 10:10:00' as timestamp);
如果是Oracle数据库,WHERE条件应该这么写
CREATE_TIME <= to_date('2023-06-28 10:10:00','yyyy-MM-dd hh24:mi:ss');
2、历史数据保留时间,建议不要超过60天,在server/config/application.yml修改
#监控数据保留天数,默认30天 historyDataOut: 30
以上修改后(配置项冒号后记得保留一个英文空格),重启server即可