久久久久av_欧美日韩一区二区在线_国产精品三区四区_日韩中字在线
Discuz! 官方交流社區
標題:
Discuz! X2.5/X3-X3.4 InnoDB數據庫補丁 beta1.0.8 【2017.8.1更新】
[打印本頁]
作者:
dashen
時間:
2022-4-20 15:18
標題:
Discuz! X2.5/X3-X3.4 InnoDB數據庫補丁 beta1.0.8 【2017.8.1更新】
2017.8.1更新
修正寫死mysql_query的問題,兼容mysqli
2013.10.8更新
修正啟用主從時可能出現的數據庫錯誤頁面
2013.9.26更新
修正bin腳本在關閉論壇或論壇某些設置的情況下不執行而輸出html的問題
2013.9.24升級X3.1請參考最下方升級指南。
2013.9.12更新
修正一個邏輯錯誤,該錯誤會導致部分情況下緩存不生效,而導致可能出現的發帖卡頓,建議更新。
2013.8.30更新
修正刪帖子后形成一個內容為del_post的空帖子,只有更新內存緩存才會消失的bug
2013.8.23更新
修正一個部分服務器上可能遇到的腳本意外中斷問題
2013.8.13更新
修正bin執行腳本log日志累增不清零
修正腳本異常退出
本腳本分為兩部分,第一部分是修改post表結構,第二部分為轉換表為INNODB引擎
當第一部分出現異常時,腳本會退出并提示重試。這時需要重新執行腳本。
當第二部分異常時,腳本仍將執行整個庫,并將轉換失敗的表寫到log日志中。
這時可以選擇按照log中的表名手動轉,或者重新執行腳本(可能耗時會多些)
2013.8.9更新
修正了昨天壓縮包里一個遺漏,該問題會導致復雜條件的語句失效
2013.8.8更新
修正一個可能導致后臺頁面管理錯誤的問題
MySQL InnoDB 引擎相比我們論壇默認的 MyISAM 引擎在寫性能上有很大提升。
InnoDB 支持行鎖(更準確的說是索引鎖)而 MyISAM 只能是表鎖。使得 InnoDB 在高并發環境中有更好的表現。
在 Discuz! X2 或者更早的版本,有站長手動把數據庫引擎轉為 InnoDB , 來避免論壇發帖高峰時期帶來的卡頓,
但是 Discuz! X2.5 以及 Discuz! X3版本,由于 post 表使用了聯合自增主鍵,而 InnoDB 不支持這個特性,而無法手動把數據庫引擎改為 InnoDB 。
考慮到大型站點站長們的這個需求后,我們發布了
在大型論壇測試過的第一個Discuz! X2.5 / X3 InnoDB 補丁測試版。
基本原理:
1,去掉 post 表 position 字段的自增屬性。
2,利用內存緩存來記錄每個帖子的當前最大樓層數,并在發帖請求過來時依次分發并自增樓層號。
3,由于內存緩存速度極快當多個發帖請求過來后能快速自增并分配樓層號,每條插入語句都能快速領取到唯一樓層號。
4,內建了錯誤修復機制避免內存失效或者統計錯誤時自動修復。
5,取消了 count(*) 語句,改為讀取模糊值。
適應場景:
發帖比較頻繁,適應于會員熱衷于交流場景,日發帖一般在數萬貼每日的。
服務器要求:
1,獨立服務器,或能執行命令行(命令行避免超時)
2,啟用了內存緩存(建議為 memcache或redis )
操作步驟:
使用方法:
1,請到
http://www.9999xn.com/thread-12045-1-1.html
下載最新對應版本的框架,里面包含了一個文件class_core.php,直接覆蓋即可。
2,關閉論壇,避免有發帖操作。對數據庫全庫進行備份。
3,確認論壇有開啟內存緩存的某一個。
4,在命令行下切換到extend/bin目錄下執行 bin_innodb_upgrade.php,一般命令如下:
切換到該目錄下執行
~$php bin_innodb_upgrade.php
耐心等待執行完畢,如果顯示其中一些任務失敗了,則需要到目錄下找log文件,對轉換失敗的表手工進行轉 innodb 。
(對于數據庫超大需要轉換很久的情況,可以采用下面的命令:
nohup php bin_innodb_upgrade.php > innodblog 2> innodberror &
,這樣可以關掉客戶端而讓其在后臺執行,執行的即時情況可以到innodblog里面查看
)
6,刪除 innodb_grade.php 和 log 文件(如果有的話),去論壇發帖測試無誤后,開放論壇。
恢復:
如果測試后不想使用了,可以按照如下兩個步驟操作:
1,所有表換回MyISAM,恢復 post 表 position 的自增屬性。
問題:
使用后出現任何問題都可以到BUG區發帖反饋
http://www.discuz.net/forum-70-1.html
。
我們建議大家先在測試論壇上使用無誤后再部署到正式論壇。
如果有新版或者補丁出現,會持續在本帖更新,建議大家關注此貼。
已知注意事項:
1, MySQL 5.6版本的 index_condition_pushdown 參數請關閉,在帖子倒序顯示的時候會引起嚴重慢查詢。
2, 因為全表統計 count(*) 改為了讀取模糊值,所以有少部分的統計數據最大會有10%左右的偏差。
3, 沒有一定技術能力,平時服務器運行良好的網站,應繼續使用默認的 MyISAM 版本,Innodb 在使用和維護上都有更高的要求。
4,在執行腳本的時候一定要保證內存足夠,否則很容易造成各種不成功的問題。
下載:
(, 下載次數: 197)
上傳
點擊文件名下載附件
X2.5/X3升級到X3.1:
1,按照官方升級指南,在執行完第四步之后,把這個附件解壓后把sql文件上傳到install/data目錄下,
(, 下載次數: 177)
上傳
點擊文件名下載附件
,然后再執行update腳本。
2,確保安裝了最新框架,確保原始的innodb擴展文件都存在,確保至少存在一個內存緩存正常工作。
3,發帖測試無誤后開放。
歡迎光臨 Discuz! 官方交流社區 (http://www.9999xn.com/)
Powered by Discuz! W1.0