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