bbs升级至X3.2后楼层乱掉的问题修复

简介: 前言:         某论坛因性能不佳,升级到了X3.2版本.但是升级后却发现楼层乱了.仔细研究了一下发现,cdb_forum_post表新增了position字段,并且是自增属性.

前言:    

    某论坛因性能不佳,升级到了X3.2版本.但是升级后却发现楼层乱了.仔细研究了一下发现,cdb_forum_post表新增了position字段,并且是自增属性.抽查帖子时,这个position字段不是按照1 2 3 4自增的,而是1 3 5 7 9这样的序列.
     导致这个问题的原因是mysql服务器是M-M架构,并且使用了如下两个选项来保证两个M不冲突:
auto-increment-increment = 2
auto-increment-offset = 1
于是我们的position自增时也根据这个属性来自增了.
下面就是针对此问题的处理过程.

处理步骤:

1.先在服务器上取消这两个参数

2.查找下数据库中有没有position是偶数的:
SELECT distinct tid FROM cdb_forum_post WHERE MOD(POSITION,2)=0;

3.把这些帖子的所有内容都移到临时表,后续对这部分帖子进行手工处理.

4.先处理position都是1 3 5 7这样增长的帖子:
为加快执行速度,可以对position增加索引,处理完后再删除索引.
for ((i=3;i 备注:这个i
5.手工处理刚才那个临时表中的position,然后再把这部分帖子灌回cdb_forum_posts.参考SQL如下:
update tmp_table set position=(position-1)/2+3 where tid=331335 and position>=7;
update tmp_table set position=(position-1)/2+28 where tid=362515 and position>=55;

6.使用下面的SQL处理最大楼层数和回复数:
update cdb_forum_thread a set maxposition=(select max(position) from cdb_forum_post b where a.tid=b.tid);
UPDATE cdb_forum_thread SET replies=(CAST(maxposition AS SIGNED)-1) WHERE CAST(replies AS SIGNED)!=  (CAST(maxposition AS SIGNED)-1) and maxposition>0;

现在看看楼层是不是正常了.
相关文章
|
搜索推荐
Magisk模块:MIUI广告截拦&屏蔽更新
Magisk模块:MIUI广告截拦&屏蔽更新
2522 0
|
IDE 开发工具
phpstorm 实现SFTP开发,线上线下同步(实时更新代码)
phpstorm 实现SFTP开发,线上线下同步(实时更新代码)
215 0
phpstorm 实现SFTP开发,线上线下同步(实时更新代码)
|
缓存 网络架构
APP - 小米/红米电视开机广告屏蔽 hosts 列表分享,轻松解决开机广告
APP - 小米/红米电视开机广告屏蔽 hosts 列表分享,轻松解决开机广告
3077 0
APP - 小米/红米电视开机广告屏蔽 hosts 列表分享,轻松解决开机广告
巧用搜索曝光、建商城、“闪回收”上线10个月用户量超过200万 | C位小程序访谈
你将通过闪回收支付宝小程序的案例了解到:如何巧妙地使用搜索入口拉新做活动如何利用社交链裂变拉新如何通过增加服务场景,缩短低频服务的复购周期一般人换手机的周期是18至22个月,手机数码回收商闪回收就处于这样一个低频的市场——完成回收行为的新用户很容易做成一锤子买卖,这是摆在这家公司面前的难题。
1471 0
巧用搜索曝光、建商城、“闪回收”上线10个月用户量超过200万 | C位小程序访谈
|
Web App开发 监控 JavaScript
Fundebug 微信小程 BUG 监控插件更新至 1.2.1,优化错误上报次数的限制算法
摘要: 1.2.1优化错误上报次数的限制算法,新增silentHttpHeader配置选项,请大家及时更新哈! Fundebug提供专业的微信小程序 BUG 监控服务,可以第一时间为您捕获生存环境中小程序的异常、错误或者 BUG,及时给开发者发送报警,帮助您快速修复 BUG。
1368 0