当系统运行一段时间后,可能出现反应比较慢。此现象的原因可能是数据库记录多,引起查询速度慢,进而影响系统识别开闸慢。这时,我们可以适当的删除一些不需要关注的历史数据,以提高数据库的查询速度。
查看数据库表的数据量
首先我们需要判断数据库中表的记录条数,以判断系统变慢,是否真是由记录数过多引起的。
select * from information_schema.tables where table_schema='jsds' order by table_rows desc;
表记录数
删除表历史记录
当判断出表的数据量比较大时,我们就可以删除一些历史数据了。
下面我们以删除t_park_record_in的记录为例
1. 创建新表
- 查询出表的建表语句
show create table t_park_record_in;
得到表的建表语句如图:
建表语句
修改一下表名为t_park_record_in_bak,并执行。
2. 迁移历史数据
把需要保留的数据迁移到备份表中,如下语句:
insert into t_park_record_in_bak select * from t_park_record_in where create_time>'2019-02-22 00:00:00';
3. 切换表
当完成第二步后,就可以切换表了。执行如下语句
rename table t_park_record_in to t_park_record_in_old,t_park_record_in_bak to t_park_record_in;
这样就完成了表的历史记录的删除,如果历史数据不要留(占用磁盘空间),可以使用如下语句彻底删除。
truncate t_park_record_in_bak
网友评论