1234下一页
返回列表 发帖
查看: 3022|回复: 31

[已解决] X3.4 forum_post 主键问题

13

主题

88

回帖

123

积分

渐入佳境

贡献
1 点
金币
1 个
发表于 2023-2-14 21:43:54 | 显示全部楼层 |阅读模式
要试升3.5发现我的 forum_post 这两个主键顺序跟 X3.5的是相反的顺序,

维持这样的顺序有没有问题?
另外如果没有问题可以手动新增其他栏位然后略过升级程序对 forum_post的修改吗?
因为每次收集都会被修改成bak.

post.png

1 贡献+5 金币

最佳答案

stonys 发表于 2023-2-19 11:14
之前的innoDB性能非常高,
3.4时我的服务器CPU是1核,平时负载非常低,CPU30%以下,
升级到3.5后的负载超 ...

x3.4 innodb框架和3.5的主要区别在回帖这块,如果你的站点不是高频回帖场景占比很大的话,一般不至于。
有条件的话可以尝试短暂禁用回帖功能,观察CPU是否有明显的下降。

另外3.5这套方案早在测试阶段就给过超大型站点用过的,现在内置的是根据反馈做了优化后的版本,按理说应该可以才对。

看帖这块3.4 3.5逻辑都是一样的,重定position值优化的是看帖,理论上对3.4和3.5都有帮助,可以在查看阶段走快速查询。
你那边重写position以后,记得抽几条数据检查一下,position是否为当前帖子的楼层号。
另外forum_threaddisablepos这个表一定要清理下,凡是这个表里有数值的帖子都不走快速查询。
回复

使用道具 举报

12

主题

1608

回帖

2717

积分

Giter

贡献
143 点
金币
353 个
发表于 2023-2-14 23:24:03 | 显示全部楼层
有问题,不可以是这个顺序,而且哪个Discuz版本也不会给这个顺序。
你一定是以前参考过某些网上的错误教程把这个顺序给换了。换了之后可以在InnoDB以及云数据库上不报错,但是进数据库里的数据将全部会是错的。
虽然一般也能用,但所有查询这个表的业务性能会受到严重影响。楼层越多影响越大。
回复 支持 反对

使用道具 举报

13

主题

88

回帖

123

积分

渐入佳境

贡献
1 点
金币
1 个
 楼主| 发表于 2023-2-16 16:41:18 | 显示全部楼层
这可能要再改回MyISAM才能对调顺序,
我可以只改 forum__post 这个表成MyISAM其他表继续维持innodb吗?
回复 支持 反对

使用道具 举报

7

主题

36

回帖

61

积分

渐入佳境

贡献
1 点
金币
10 个
发表于 2023-2-16 21:04:04 | 显示全部楼层
我也是X3.4升级上来的,查了一下我的数据表,和你一样的顺序,但现在使用正常的,我的论坛200多万主题3000多万帖子。
升级当时也是给改为_bak了,我手动做了修改,进论坛之后先前的主题回复会出现丢帖子(不显示旧帖子,只显示新帖子),我查了是position的问题,手动修复了,其后把position的default值0改为NULL,发帖就正常了,现在正常运行。
`position` int(10) unsigned NOT NULL,
PRIMARY KEY (`position`,`tid`),

升级之前就已经是InnoDB引擎。
回复 支持 反对

使用道具 举报

12

主题

1608

回帖

2717

积分

Giter

贡献
143 点
金币
353 个
发表于 2023-2-16 22:16:31 | 显示全部楼层
hopejyb 发表于 2023-2-16 21:04
我也是X3.4升级上来的,查了一下我的数据表,和你一样的顺序,但现在使用正常的,我的论坛200多万主题3000 ...

position 和 tid 反过来理论上好像能用,但最好别这么干,目前系统是按tid position设计的,反过来可能会导致性能下降,尤其是在大量用户同时使用以及单帖超高楼层的场景下。有条件的话最好还是换过来。
回复 支持 反对

使用道具 举报

7

主题

36

回帖

61

积分

渐入佳境

贡献
1 点
金币
10 个
发表于 2023-2-16 22:32:32 | 显示全部楼层
专家 发表于 2023-2-16 22:16
position 和 tid 反过来理论上好像能用,但最好别这么干,目前系统是按tid position设计的,反过来可能会 ...

谢谢。我找时间调下,主要是帖子表太大了,动一次起码1小时以上,得找个合适的时间。
回复 支持 反对

使用道具 举报

13

主题

88

回帖

123

积分

渐入佳境

贡献
1 点
金币
1 个
 楼主| 发表于 2023-2-16 22:36:40 | 显示全部楼层
hopejyb 发表于 2023-2-16 22:32
谢谢。我找时间调下,主要是帖子表太大了,动一次起码1小时以上,得找个合适的时间。 ...

在innodb下好像调不过来,一直报错,
所以我才想改回MyISAM来改.
要是改成了麻烦通报下方法,谢谢.
回复 支持 反对

使用道具 举报

12

主题

1608

回帖

2717

积分

Giter

贡献
143 点
金币
353 个
发表于 2023-2-16 23:09:13 | 显示全部楼层
本帖最后由 专家 于 2023-2-16 23:12 编辑
cordless 发表于 2023-2-16 22:36
在innodb下好像调不过来,一直报错,
所以我才想改回MyISAM来改.
要是改成了麻烦通报下方法,谢谢. ...

你得先把position的auto increment去掉……

注意,去掉以后这张表就不能在3.4正常运行了,只在升级的时候才可以这么做
回复 支持 反对

使用道具 举报

13

主题

88

回帖

123

积分

渐入佳境

贡献
1 点
金币
1 个
 楼主| 发表于 2023-2-17 01:55:42 | 显示全部楼层
专家 发表于 2023-2-16 23:09
你得先把position的auto increment去掉……

注意,去掉以后这张表就不能在3.4正常运行了,只在升级的时候 ...

好的谢谢
回复 支持 反对

使用道具 举报

16

主题

66

回帖

92

积分

渐入佳境

贡献
0 点
金币
5 个
发表于 2023-2-17 08:47:55 | 显示全部楼层
专家 发表于 2023-2-16 23:09
你得先把position的auto increment去掉……

注意,去掉以后这张表就不能在3.4正常运行了,只在升级的时候 ...

使用过3.4 的innodb方案。
Discuz! X2.5/X3-X3.4  InnoDB数据库补丁 beta1.0.8 【2017.8.1更新】
https://www.dismall.com/thread-12049-1-1.html


旧帖子的postion与pid相同,不知道对性能有没有影响?
回复 支持 反对

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

  • 关注公众号
  • 有偿服务微信
  • 有偿服务QQ

手机版|小黑屋|Discuz! 官方交流社区 ( 皖ICP备16010102号 |皖公网安备34010302002376号 )|网站地图|star

GMT+8, 2024-5-18 23:27 , Processed in 0.077722 second(s), 11 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2024 Discuz! Team.

关灯 在本版发帖
有偿服务QQ
有偿服务微信
返回顶部
快速回复 返回顶部 返回列表