0

批量删除重名标题帖子与清理删除帖子过后残留的垃圾,减少数据库读取和查询

xinyu
2025-04-02 87

方法:宝塔打开你的xiuno网站数据库,进入数据表中找到SQL,执行语句。
批量删除重名标题帖子与清理删除帖子过后残留的垃圾,减少数据库读取和查询

 

储存帖子数据的分别是“bbs_mythread”“bbs_post”“bbs_thread”“bbs_tag_thread”这4张表

我发现,其中bbs_thread表是储存帖子标题的,bbs_post表是储存帖子内容的,他们都不在同一张表下,bbs_mythread表是储存用户中心发主题记录的,bbs_tag_thread表是标签关联文章的,

首先我用删帖插件试了一下,发现帖子中但凡绑定TAG标签的帖子删除后,关联文章的标签表中数据依然存在,这里我只能说垃圾,这就是xiuno插件不通用都是单独的坏处,所有插件都不能兼容使用。
所以我的逻辑是这样的:首先,先把bbs_thread中标题重复的数据删除掉,只留下1个,执行代码:

DELETE t1 FROM bbs_thread t1
JOIN bbs_thread t2 
WHERE t1.tid > t2.tid AND t1.subject = t2.subject;
PHP

此时相同标题的文章删除后,储存内容的表,数据还没有被删除。然后获取标题的fid值,也就是文章的id,分别对“bbs_mythread”“bbs_post”“bbs_tag_thread”这3张表进行查询fid值,如果fid与bbs_thread表的fid不存在则删除该条数据。
SQL依次执行以下代码:


处理bbs_post表留存垃圾

 

DELETE bbs_post
FROM bbs_post
LEFT JOIN bbs_thread ON bbs_post.tid = bbs_thread.tid
WHERE bbs_thread.tid IS NULL;
PHP


处理bbs_mythread表个人用户中心主题记录留存垃圾

DELETE bbs_mythread
FROM bbs_mythread
LEFT JOIN bbs_thread ON bbs_mythread.tid = bbs_thread.tid
WHERE bbs_thread.tid IS NULL;
PHP


处理标签表bbs_mythread关联主题留存垃圾

DELETE bbs_tag_thread
FROM bbs_tag_thread
LEFT JOIN bbs_thread ON bbs_tag_thread.tid = bbs_thread.tid
WHERE bbs_thread.tid IS NULL;
PHP

 

效果图:

批量删除重名标题帖子与清理删除帖子过后残留的垃圾,减少数据库读取和查询批量删除重名标题帖子与清理删除帖子过后残留的垃圾,减少数据库读取和查询

执行清理了一大堆垃圾,读取速度又快了1秒。
上一期的教程我有一张是我3天一共采集发布差不多7W个帖子的截图。使用清理重名标题的帖子后少了足足5W个帖子,包括清理了之前帖子关联的标签数据,用户主题发帖记录等。
批量删除重名标题帖子与清理删除帖子过后残留的垃圾,减少数据库读取和查询

所以,以后发现重名过多的数据时可以利用刚刚的方法来执行操作数据库表。记得每次清理前先执行一遍bbs_thread标题表的SQL语句再依次执行“bbs_mythread”“bbs_post”“bbs_tag_thread”这三张表!教程都在上面,可以从开头的第一个SQL语句代码开始执行,一共是执行4次语句,然后进网站后台清理一下缓存。

如果出现报错,或者执行时间过久报错,那就是你数据库配置没给他分配超时时长。宝塔,打开数据库插件,进入配置搜索:innodb_lock_wait_timeout参数,默认时长好像是50还是60,可以根据你xiuno的数据库中储存的表数据大小来更改,数据较多就设置时长大一点,他的单位是秒,填写数字就行,配置好后重启数据库或者重载数据库!

本站申明 1、本论坛一律禁止以任何方式发布或转载任何违法的相关信息,访客发现请投诉举报
2、本论坛的资源部分来源于网络,如有侵权,请 私信联系站长进行删除处理。
3、不得发布和链接任何有关政治, 色情, 宗教, 迷信.低俗、变态、血腥、暴力以及危害国家安全.诋毁政府形象等违法言论和信息的帖子.
4、本帖图片及内容纯属发布用户个人意见,与本站无关!
4,本帖如为原创资源/教程分享帖,则本站与发布用户共同享有内容版权!
6,本站管理有权在不经发布者同意的情况下,根据版规及相关法律法规删除/修改本帖!
7,如无特别说明,任何个人或者组织不得转载本帖内容!任何个人或团体不得将本站资源用于非法用途!
8,未尽事宜最终解释权归本站(小白网)所有!

最新回复 (0)

    暂无评论

请先登录后发表评论!

返回
请先登录后发表评论!