久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线

Discuz! 官方交流社區

標題: X3.4 forum_post 主鍵問題 [打印本頁]

作者: cordless    時間: 2023-2-14 21:43
標題: X3.4 forum_post 主鍵問題
要試升3.5發現我的 forum_post 這兩個主鍵順序跟 X3.5的是相反的順序,

維持這樣的順序有沒有問題?
另外如果沒有問題可以手動新增其他欄位然后略過升級程序對 forum_post的修改嗎?
因為每次收集都會被修改成bak.

(, 下載次數: 42)


作者: 專家    時間: 2023-2-14 23:24
有問題,不可以是這個順序,而且哪個Discuz版本也不會給這個順序。
你一定是以前參考過某些網上的錯誤教程把這個順序給換了。換了之后可以在InnoDB以及云數據庫上不報錯,但是進數據庫里的數據將全部會是錯的。
雖然一般也能用,但所有查詢這個表的業務性能會受到嚴重影響。樓層越多影響越大。
作者: cordless    時間: 2023-2-16 16:41
這可能要再改回MyISAM才能對調順序,
我可以只改 forum__post 這個表成MyISAM其他表繼續維持innodb嗎?
作者: hopejyb    時間: 2023-2-16 21:04
我也是X3.4升級上來的,查了一下我的數據表,和你一樣的順序,但現在使用正常的,我的論壇200多萬主題3000多萬帖子。
升級當時也是給改為_bak了,我手動做了修改,進論壇之后先前的主題回復會出現丟帖子(不顯示舊帖子,只顯示新帖子),我查了是position的問題,手動修復了,其后把position的default值0改為NULL,發帖就正常了,現在正常運行。
`position` int(10) unsigned NOT NULL,
PRIMARY KEY (`position`,`tid`),

升級之前就已經是InnoDB引擎。
作者: 專家    時間: 2023-2-16 22:16
hopejyb 發表于 2023-2-16 21:04
我也是X3.4升級上來的,查了一下我的數據表,和你一樣的順序,但現在使用正常的,我的論壇200多萬主題3000 ...

position 和 tid 反過來理論上好像能用,但最好別這么干,目前系統是按tid position設計的,反過來可能會導致性能下降,尤其是在大量用戶同時使用以及單帖超高樓層的場景下。有條件的話最好還是換過來。
作者: hopejyb    時間: 2023-2-16 22:32
專家 發表于 2023-2-16 22:16
position 和 tid 反過來理論上好像能用,但最好別這么干,目前系統是按tid position設計的,反過來可能會 ...

謝謝。我找時間調下,主要是帖子表太大了,動一次起碼1小時以上,得找個合適的時間。
作者: cordless    時間: 2023-2-16 22:36
hopejyb 發表于 2023-2-16 22:32
謝謝。我找時間調下,主要是帖子表太大了,動一次起碼1小時以上,得找個合適的時間。 ...

在innodb下好像調不過來,一直報錯,
所以我才想改回MyISAM來改.
要是改成了麻煩通報下方法,謝謝.
作者: 專家    時間: 2023-2-16 23:09
本帖最后由 專家 于 2023-2-16 23:12 編輯
cordless 發表于 2023-2-16 22:36
在innodb下好像調不過來,一直報錯,
所以我才想改回MyISAM來改.
要是改成了麻煩通報下方法,謝謝. ...

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

注意,去掉以后這張表就不能在3.4正常運行了,只在升級的時候才可以這么做
作者: cordless    時間: 2023-2-17 01:55
專家 發表于 2023-2-16 23:09
你得先把position的auto increment去掉……

注意,去掉以后這張表就不能在3.4正常運行了,只在升級的時候 ...

好的謝謝
作者: stonys    時間: 2023-2-17 08:47
專家 發表于 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更新】
http://www.9999xn.com/thread-12049-1-1.html


舊帖子的postion與pid相同,不知道對性能有沒有影響?
作者: cordless    時間: 2023-2-17 17:27
專家 發表于 2023-2-16 23:09
你得先把position的auto increment去掉……

注意,去掉以后這張表就不能在3.4正常運行了,只在升級的時候 ...

我試了把數據從innodb 轉回 MyISAM發現tid這欄的基數變大了幾千,
position 的基數變成空值,如果再做上下次序對調,tid變成空的,position的基數是剛剛tid的基數.
這樣正常嗎?試了發帖都正常就是了.
作者: 專家    時間: 2023-2-17 17:30
cordless 發表于 2023-2-17 17:27
我試了把數據從innodb 轉回 MyISAM發現tid這欄的基數變大了幾千,
position 的基數變成空值,如果再做上下 ...

auto increment去掉就不需要轉回myisam了啊……理論上可以直接對調索引里的tid和position了

之前使用對調過的tid和position肯定會產生不少錯誤數據,因此數據上有點異常應該問題不大,之后產生的數據就沒有問題了。
作者: 專家    時間: 2023-2-17 17:35
stonys 發表于 2023-2-17 08:47
使用過3.4 的innodb方案。
Discuz! X2.5/X3-X3.4  InnoDB數據庫補丁 beta1.0.8 【2017.8.1更新】
https:/ ...

position的正確數值應該是當前樓層的樓層號,和pid相同的話就不對了。
系統無法根據position快速檢索樓層,就會回退到用pid計數的方式,降低性能。
但如果后續產生的數據沒有錯的話,后續的數據是不受影響的,還可以根據position快速檢索。

不過按理說老版本innodb方案不應該有這個問題啊……雖然我沒用過,但是我之前看過它的實現原理,不應該樓層號寫錯的。可能是你那邊配置出錯了?
作者: stonys    時間: 2023-2-17 22:32
專家 發表于 2023-2-17 17:35
position的正確數值應該是當前樓層的樓層號,和pid相同的話就不對了。
系統無法根據position快速檢索樓層 ...

有沒辦法重新更新一下positon樓層號?

作者: 專家    時間: 2023-2-18 22:00
stonys 發表于 2023-2-17 22:32
有沒辦法重新更新一下positon樓層號?

這個不太好弄,因為有必要更新的post表,量往往很大,重寫難度高。
可以考慮自制一個腳本將總樓層數非常多的帖子的position重寫一下。對同一個tid,按pid從小到大依次從1開始給position就行了。
作者: cordless    時間: 2023-2-19 01:46
專家 發表于 2023-2-18 22:00
這個不太好弄,因為有必要更新的post表,量往往很大,重寫難度高。
可以考慮自制一個腳本將總樓層數非常 ...

我看了下,我大概錯誤的地方只有幾頁,是不是我升級完X3.5后我查出forum_post表
每一個tid相同的,將position改成1起頭按順序就可以,沒再牽涉到其他表對嗎?
作者: cordless    時間: 2023-2-19 01:51
專家 發表于 2023-2-18 22:00
這個不太好弄,因為有必要更新的post表,量往往很大,重寫難度高。
可以考慮自制一個腳本將總樓層數非常 ...

我還看到forum_thread 也有一個maxposition也要改.
作者: stonys    時間: 2023-2-19 09:16
本帖最后由 stonys 于 2023-2-19 16:31 編輯
專家 發表于 2023-2-18 22:00
這個不太好弄,因為有必要更新的post表,量往往很大,重寫難度高。
可以考慮自制一個腳本將總樓層數非常 ...

用百度了下。
1、重算生成postions表。
  1. create table positions
  2. select
  3.   -- rownum  判斷  @pre_tid是否和當前的tid一樣 ,true:讓 @i+=1 false:重置@i
  4.   (
  5.     @i := case
  6.       when @pre_tid = tid then @i + 1
  7.       else 1
  8.     end
  9.   ) rownum,
  10.   b.pid,b.tid,b.position,
  11.   --  設置 @pre_tid等于上一個 tid
  12.   (@pre_tid := tid)
  13. from
  14.   `pre_forum_post` as b,
  15.   (
  16.     SELECT
  17.       @i := 0,
  18.       @pre_tid := ''
  19.   ) AS a
  20. group by
  21.   tid,dateline
  22. order by
  23.   tid,dateline;
復制代碼
2、更新post表的postion字段
  1. update `pre_forum_post` a,
  2. positions b
  3. set
  4.   a.position = b.rownum
  5. where
  6.   a.pid = b.pid
復制代碼
不知道有沒有問題。
處理后,似乎沒什么變化。論壇依然CPU占用較高。
由3.4升級3.5后,CPU占用高這個問題一直沒找到原因。

之前3.x的innodb方案非常好用,性能很高。

作者: 數碼達人    時間: 2023-2-19 10:00
stonys 發表于 2023-2-17 08:47
使用過3.4 的innodb方案。
Discuz! X2.5/X3-X3.4  InnoDB數據庫補丁 beta1.0.8 【2017.8.1更新】
https:/ ...

我也用了InnoDB數據庫補丁,看來還不敢升級X3.5
作者: stonys    時間: 2023-2-19 11:14
數碼達人 發表于 2023-2-19 10:00
我也用了InnoDB數據庫補丁,看來還不敢升級X3.5

之前的innoDB性能非常高,
3.4時我的服務器CPU是1核,平時負載非常低,CPU30%以下,
升級到3.5后的負載超高,都在100%左右。
后面沒辦法又花錢將CPU加到2核,負載依然很高,平時CPU在50-70%,也經常CPU到100%報警。

不清楚是不是3.5的性能問題,一直沒找到原因。
作者: 專家    時間: 2023-2-19 15:28
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這個表一定要清理下,凡是這個表里有數值的帖子都不走快速查詢。
作者: 專家    時間: 2023-2-19 15:31
cordless 發表于 2023-2-19 01:46
我看了下,我大概錯誤的地方只有幾頁,是不是我升級完X3.5后我查出forum_post表
每一個tid相同的,將positio ...

是這樣的。
作者: stonys    時間: 2023-2-19 16:16
專家 發表于 2023-2-19 15:28
x3.4 innodb框架和3.5的主要區別在回帖這塊,如果你的站點不是高頻回帖場景占比很大的話,一般不至于。
...

感謝解答。
論壇回帖人很少,不是高頻回帖場景。
又將thread表的maxposition重算修復了,之前的值都比較大,幾萬到幾十萬以上,不曉得是不是這個原因。
另外,pre_forum_threaddisablepos這個表有4000多條記錄,這個表的數據是自動生成的嗎?直接清理掉嗎 ?

作者: 專家    時間: 2023-2-19 16:17
stonys 發表于 2023-2-19 16:16
感謝解答。
論壇回帖人很少,不是高頻回帖場景。
又將thread表的maxposition重算修復了,之前的值都比較 ...

threaddisablepos 理論上可以直接清空表,在早期版本這就是個內存表,重啟一下服務器數據就沒了那種的。
當然不放心的話可以備份一下。
作者: stonys    時間: 2023-2-19 16:34
專家 發表于 2023-2-19 16:17
threaddisablepos 理論上可以直接清空表,在早期版本這就是個內存表,重啟一下服務器數據就沒了那種的。
...

謝謝,已經清空。
觀察兩天看下
作者: hopejyb    時間: 2023-2-19 21:23
cordless 發表于 2023-2-19 01:46
我看了下,我大概錯誤的地方只有幾頁,是不是我升級完X3.5后我查出forum_post表
每一個tid相同的,將positio ...

我遇到這個情況。

當時升級完之后,我發現異常,回復升級之前的主題,升級之前的帖子會顯示不出來,只有升級之后發的帖子,我檢查了post表,發現position默認是從0開始的,于是修改為1開始,并且手動修改了有問題的帖子的position的值,一切正常了。

以下是升級之前的主題:

select tid,pid,first,position from nb_forum_post where tid=2024807;
+---------+----------+-------+----------+
| tid     | pid      | first | position |
+---------+----------+-------+----------+
| 2024807 | 34659470 |     1 | 41358421 |
| 2024807 | 34659556 |     0 | 41358507 |
| 2024807 | 34659706 |     0 | 41358657 |
| 2024807 | 34660591 |     0 | 41359542 |
| 2024807 | 34660729 |     0 | 41359680 |
| 2024807 | 34660731 |     0 | 41359682 |
| 2024807 | 34660738 |     0 | 41359689 |
+---------+----------+-------+----------+
7 rows in set (0.00 sec)


以下是升級之后發的主題:

select tid,pid,first,position from nb_forum_post where tid=2029587;
+---------+----------+-------+----------+
| tid     | pid      | first | position |
+---------+----------+-------+----------+
| 2029587 | 34746471 |     1 |        1 |
| 2029587 | 34746741 |     0 |        2 |
| 2029587 | 34746921 |     0 |        3 |
| 2029587 | 34747024 |     0 |        4 |
| 2029587 | 34747033 |     0 |        5 |
| 2029587 | 34747189 |     0 |        6 |
| 2029587 | 34747264 |     0 |        7 |
| 2029587 | 34748053 |     0 |        8 |
| 2029587 | 34748834 |     0 |        9 |
| 2029587 | 34749684 |     0 |       10 |
| 2029587 | 34749690 |     0 |       11 |
| 2029587 | 34750748 |     0 |       12 |
| 2029587 | 34750773 |     0 |       13 |
| 2029587 | 34753543 |     0 |       14 |
| 2029587 | 34755084 |     0 |       15 |
+---------+----------+-------+----------+
15 rows in set (0.01 sec)


作者: cordless    時間: 2023-2-19 22:04
hopejyb 發表于 2023-2-19 21:23
我遇到這個情況。

當時升級完之后,我發現異常,回復升級之前的主題,升級之前的帖子會顯示不出來,只有 ...

我已經試過手動修改forum_post符合3.5后把forum_post加入那五個不轉換的表中,就不讓升級程序幫我改就可以了,唯一要做的是最后取消AI再把樓層修改回來.
作者: 專家    時間: 2023-2-19 22:46
hopejyb 發表于 2023-2-19 21:23
我遇到這個情況。

當時升級完之后,我發現異常,回復升級之前的主題,升級之前的帖子會顯示不出來,只有 ...

官方版本的X3.5表里的position沒有默認值,不過這個應該影響不大。
作者: cordless    時間: 2023-3-2 01:38
專家 發表于 2023-2-19 22:46
官方版本的X3.5表里的position沒有默認值,不過這個應該影響不大。

用修改后的update正常升級到x3.5了,
也把position修改好,看起來都正常了,
謝謝你的解說.
作者: cordless    時間: 2023-3-6 18:41
本帖最后由 cordless 于 2023-3-6 18:59 編輯
專家 發表于 2023-2-19 22:46
官方版本的X3.5表里的position沒有默認值,不過這個應該影響不大。

我的forum_post都修正了,現在正在想辦法修正forum_thread的maxposition.
發現到有3000多筆要修正,我的好像都是1.
0的只有幾個都已修正,想問一下這個欄位錯誤到底有沒有問題?
會參考到這個欄位嗎?還是有回覆時會自動修正?
作者: cordless    時間: 2023-3-6 19:56
專家 發表于 2023-2-19 22:46
官方版本的X3.5表里的position沒有默認值,不過這個應該影響不大。

結果三搞兩搞全部修正完畢了.
作者: 專家    時間: 2023-3-7 16:11
cordless 發表于 2023-3-6 18:41
我的forum_post都修正了,現在正在想辦法修正forum_thread的maxposition.
發現到有3000多筆要修正,我的好像 ...

看了下代碼里的實現,這個值似乎是自動更新的。不過改了也好。




歡迎光臨 Discuz! 官方交流社區 (http://www.9999xn.com/) Powered by Discuz! X5.0
久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线
99视频超级精品| 欧美婷婷六月丁香综合色| 欧美在线不卡| 国产精品久久久久久久久婷婷| 久久久久久久久99精品| 亚洲一区二区三区激情| 国产伦理精品不卡| 欧美日韩精品伦理作品在线免费观看| 精品国产免费一区二区三区四区 | 亚洲色图.com| 久久久久久亚洲综合影院红桃| 日韩午夜激情视频| 成人激情开心网| 日本韩国欧美在线| 亚洲成a天堂v人片| 最新日韩av| 日韩欧美中文字幕精品| 色噜噜狠狠色综合中国| 欧美国产日韩一二三区| 久国产精品韩国三级视频| 国内不卡一区二区三区| 91精品国产入口| 亚洲一本大道在线| 91色视频在线| 欧美乱妇20p| 亚洲国产一区二区视频| 国产精品xxx在线观看www| 欧美调教femdomvk| 亚洲一区成人在线| 91同城在线观看| 一区二区冒白浆视频| 欧美电视剧在线看免费| 天天综合网 天天综合色| 国产综合成人久久大片91| 亚洲欧美日韩在线观看a三区| 亚洲成人免费视频| 亚洲成人在线视频网站| 久久久久久久久伊人| 国产精品一级在线| 色婷婷综合激情| 一区二区在线免费观看| 牛人盗摄一区二区三区视频| 国产人妖乱国产精品人妖| 国产成人自拍网| 欧美日韩视频一区二区| 亚洲国产日韩在线一区模特| 色综合久久久久| 亚洲第一成人在线| 亚洲福利专区| 国产农村妇女精品| 成人午夜激情视频| 欧美日韩电影在线播放| 性欧美疯狂xxxxbbbb| 亚洲成人在线| 国产精品久久二区二区| 欧美日韩一区在线播放| 欧美精品一区二区三区高清aⅴ| 欧美日韩国产一区精品一区| 亚洲不卡在线观看| 99综合视频| 亚洲另类春色校园小说| 欧美三级午夜理伦三级中文幕| 一区二区成人在线观看| 国产免费成人| 亚洲一区免费观看| 国产欧美日韩| 亚洲网友自拍偷拍| 亚洲免费精品| 国产精品无圣光一区二区| 欧美国产视频在线观看| 欧美国产欧美综合| 欧美日韩一区二区三区在线视频| 亚洲午夜久久久久久久久电影院| 欧美日韩一区久久| 国产精品亚洲人在线观看| 欧美人妖巨大在线| 韩国成人在线视频| 在线观看91精品国产入口| 男女男精品网站| 欧美性大战久久久久久久| 国产在线精品免费av| 91精品欧美福利在线观看| 国产在线日韩欧美| 日韩一区二区三区四区| 成人午夜av电影| 久久免费偷拍视频| 欧美精品国产一区二区| 国产精品久久久久天堂| 影音先锋久久精品| 一区二区高清在线| 久久婷婷久久| 国产在线观看免费一区| 欧美电影精品一区二区| eeuss鲁片一区二区三区在线看| 一区二区三区视频在线看| 校园春色综合网| 日欧美一区二区| 欧美日韩久久久一区| 成人黄色软件下载| 国产婷婷一区二区| 欧美黄色大片网站| 一区二区三区在线视频免费 | 亚洲精品国产视频| 亚洲综合电影一区二区三区| 成人国产视频在线观看| 国产欧美日韩激情| 亚洲人妖在线| 丝袜a∨在线一区二区三区不卡| www亚洲一区| 亚洲国产精品一区在线观看不卡| 国产精品一区二区男女羞羞无遮挡| 亚洲九九爱视频| 91久久精品一区二区二区| 丰满少妇在线播放bd日韩电影| 亚洲三级在线播放| 色哟哟精品一区| 国产91精品欧美| 久久精品夜色噜噜亚洲aⅴ| 国内精品99| 爽好多水快深点欧美视频| 欧美军同video69gay| 99国产精品99久久久久久| 亚洲女厕所小便bbb| 在线观看91视频| av中文字幕一区| 一区二区三区毛片| 欧美精三区欧美精三区| 欧美精品v日韩精品v国产精品| 国产制服丝袜一区| 国产精品视频第一区| 乱码第一页成人| 国产成人综合视频| 亚洲图片欧美激情| 欧美日韩中文另类| 欧美日韩国产不卡在线看| 亚洲国产wwwccc36天堂| 欧美性生活久久| 欧美一区视频| 免费在线看一区| 国产欧美一区二区精品忘忧草 | 国产乱码精品一区二区三| 中文字幕的久久| 91福利精品第一导航| 91蜜桃视频在线| 日韩 欧美一区二区三区| 国产清纯白嫩初高生在线观看91 | 欧美自拍偷拍午夜视频| 99久久er热在这里只有精品15| 理论片日本一区| 中文字幕一区二区三区在线播放| 久久综合九色综合久久久精品综合 | 欧美日韩一区二区三区不卡| 色先锋aa成人| 91女人视频在线观看| 人人超碰91尤物精品国产| 国产区在线观看成人精品| 午夜在线a亚洲v天堂网2018| 亚洲三级观看| 国产一区二区三区电影在线观看| 日韩av成人高清| 国产精品免费视频网站| 欧美老肥妇做.爰bbww视频| 在线播放不卡| 福利一区福利二区| 午夜av一区二区| 中文字幕亚洲综合久久菠萝蜜| 中文字幕一区二区三区四区| 日韩一区日韩二区| 日韩免费高清视频| 色偷偷成人一区二区三区91| 久久婷婷激情| 亚洲国产91| 99精品桃花视频在线观看| 免费日本视频一区| 亚洲综合色在线| 久久久99免费| 久久综合激情| 亚洲黄色高清| 欧美fxxxxxx另类| 国产suv精品一区二区三区| 五月婷婷欧美视频| 国产精品国产三级国产三级人妇| 国产精品久久久久久久久免费桃花| 最新中文字幕一区二区三区| 亚洲综合视频在线| 国产精品对白交换视频| 欧美精品一区二区三区蜜桃视频| 久久麻豆一区二区| 欧美一区二区三区男人的天堂| 精品国产一区二区三区久久影院 | 中文字幕在线免费不卡| 精品少妇一区二区三区免费观看| 亚洲精品一区二区三区蜜桃下载 | 欧美哺乳videos| 国内视频精品| 99r精品视频| 成人精品鲁一区一区二区| 国内一区二区视频| 日本欧美韩国一区三区| 亚洲国产日日夜夜|