方案一
直接在需要清理数据的表上执行delete命令,删除需要删除的数据。这样执行,不影响正常进数据,数据的安全性能够得到保证,但是效率非常低。
方案二
修改表名ALTER TABLE aaa RENAME TO bbb
新建表 show create table bbb 把得到的建表语句复制出来,但需要把新建的表的名字改成aaa即可,然后再放到mysql去执行。
同样,我们可以把上面的执行过程写入到一个.sql文件中,到时直接导入到对应的数据库中即可
然后就执行
insert into aaa select * bbb where;
这样导入,速度会比较快,但也有弊端,就是自增ID的问题,因为你写这个的时候,特别是建表的时候,那个自增ID如果是2000,但是这个时候又在向原来的表进数据,所以新建aaa表时自增ID需要设置稍微大点
这种方案转移清理数据比较快,但是可能会有数据的丢失(主要是在执行这些操作的时候,这张表还在进数据)
虽然有以上两种方案清理数据库里面的数据,但个人认为,对于这种需要清理的表,数据量非常大的表,最好还是在开发阶段就做分表处理,根据数据的多少来决定分表的时间间隔,这样的优点是清理比较方便,而且也会让表保持在一个适量的数据范围内,不至于影响对mysql的操作
转载请注明:IT运维空间 » linux » MYSQL清理数据方案
发表评论