帝国CMS如何互相转移分表之间的数据

最近发现帝国CMS文章数据添加太多到某一张分表中了,如图

blob.png

这是极其不合理的,需要优化下,所以这篇文章要告诉大家的也就是如何互相转移分表之间的数据。

我现在要将: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早已不是这些了。。。

转移后的结果

blob.png

20170311 20:53更新

建议执行的时候,一条一条执行,不要一次性执行,先插入后才能删除!!一定要记住,血泪教训!!!

妈了个蛋,执行的时候,我不知道抽什么风,先跑了下delete,然后sqlyog提交了。。。提交了。。。。没救了没救了。。。。8W条记录灰飞烟灭!!!!!

posted @ 2021-07-11 23:03  kuba8  阅读(198)  评论(0编辑  收藏  举报