最近发现帝国CMS文章数据添加太多到某一张分表中了,如图
这是极其不合理的,需要优化下,所以这篇文章要告诉大家的也就是如何互相转移分表之间的数据。
我现在要将:phome_ecms_news_data_2
的数据转移一些到phome_ecms_news_data_1
的分表中(这些分表名都是默认的,这是我测试环境中的,生产环境中的表名更奇葩点。)
以下代码在执行前,请先进行数据备份!!!!!!
只需要几行SQL就能搞定了
phome_ecms_news_data_2 -> phome_ecms_news_data_1
开始查询:
/*首先插入1到1万的数据到目标分表中*/ INSERT INTO PHOME_ECMS_NEWS_DATA_1 SELECT * FROM PHOME_ECMS_NEWS_DATA_2 T2 WHERE T2.ID> 1 AND T2.ID< 10000; /*然后删除原始分表中1到1万的数据*/ DELETE FROM PHOME_ECMS_NEWS_DATA_2 WHERE T2.ID> 1 AND T2.ID< 10000; /*做完这些后,更新数据库缓存*/
其中的ID范围大家自己查下表,看下就可以了。这里是为了方便才这样写,我的ID早已不是这些了。。。
转移后的结果
20170311 20:53更新
建议执行的时候,一条一条执行,不要一次性执行,先插入后才能删除!!一定要记住,血泪教训!!!
妈了个蛋,执行的时候,我不知道抽什么风,先跑了下delete,然后sqlyog提交了。。。提交了。。。。没救了没救了。。。。8W条记录灰飞烟灭!!!!!