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

返回列表 發(fā)帖
查看: 2925|回復(fù): 0

Discuz! X2.5/X3-X3.4 InnoDB數(shù)據(jù)庫(kù)補(bǔ)丁 beta1.0.8 【2017.8.1更新】

56

主題

1470

回帖

3萬(wàn)

積分

管理員

貢獻(xiàn)
2074 點(diǎn)
金幣
1389 個(gè)
樓主
發(fā)表于 2022-4-20 15:18:37 | 只看樓主 |倒序?yàn)g覽 |閱讀模式
2017.8.1更新
修正寫(xiě)死m(xù)ysql_query的問(wèn)題,兼容mysqli

2013.10.8更新

修正啟用主從時(shí)可能出現(xiàn)的數(shù)據(jù)庫(kù)錯(cuò)誤頁(yè)面

2013.9.26更新

修正bin腳本在關(guān)閉論壇或論壇某些設(shè)置的情況下不執(zhí)行而輸出html的問(wèn)題

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ù)器上可能遇到的腳本意外中斷問(wèn)題

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è)庫(kù),并將轉(zhuǎn)換失敗的表寫(xiě)到log日志中。
這時(shí)可以選擇按照l(shuí)og中的表名手動(dòng)轉(zhuǎn),或者重新執(zhí)行腳本(可能耗時(shí)會(huì)多些)

2013.8.9更新

修正了昨天壓縮包里一個(gè)遺漏,該問(wèn)題會(huì)導(dǎo)致復(fù)雜條件的語(yǔ)句失效

2013.8.8更新

修正一個(gè)可能導(dǎo)致后臺(tái)頁(yè)面管理錯(cuò)誤的問(wèn)題


MySQL InnoDB 引擎相比我們論壇默認(rèn)的 MyISAM 引擎在寫(xiě)性能上有很大提升。
InnoDB 支持行鎖(更準(zhǔn)確的說(shuō)是索引鎖)而 MyISAM 只能是表鎖。使得 InnoDB 在高并發(fā)環(huán)境中有更好的表現(xiàn)。

在 Discuz! X2 或者更早的版本,有站長(zhǎng)手動(dòng)把數(shù)據(jù)庫(kù)引擎轉(zhuǎn)為 InnoDB , 來(lái)避免論壇發(fā)帖高峰時(shí)期帶來(lái)的卡頓,
但是 Discuz! X2.5 以及 Discuz! X3版本,由于 post 表使用了聯(lián)合自增主鍵,而 InnoDB 不支持這個(gè)特性,而無(wú)法手動(dòng)把數(shù)據(jù)庫(kù)引擎改為 InnoDB 。


考慮到大型站點(diǎn)站長(zhǎng)們的這個(gè)需求后,我們發(fā)布了在大型論壇測(cè)試過(guò)的第一個(gè)Discuz! X2.5 / X3  InnoDB 補(bǔ)丁測(cè)試版。

基本原理:
1,去掉 post 表 position 字段的自增屬性。
2,利用內(nèi)存緩存來(lái)記錄每個(gè)帖子的當(dāng)前最大樓層數(shù),并在發(fā)帖請(qǐng)求過(guò)來(lái)時(shí)依次分發(fā)并自增樓層號(hào)。
3,由于內(nèi)存緩存速度極快當(dāng)多個(gè)發(fā)帖請(qǐng)求過(guò)來(lái)后能快速自增并分配樓層號(hào),每條插入語(yǔ)句都能快速領(lǐng)取到唯一樓層號(hào)。
4,內(nèi)建了錯(cuò)誤修復(fù)機(jī)制避免內(nèi)存失效或者統(tǒng)計(jì)錯(cuò)誤時(shí)自動(dòng)修復(fù)。
5,取消了 count(*) 語(yǔ)句,改為讀取模糊值。

適應(yīng)場(chǎng)景:
發(fā)帖比較頻繁,適應(yīng)于會(huì)員熱衷于交流場(chǎng)景,日發(fā)帖一般在數(shù)萬(wàn)貼每日的。

服務(wù)器要求:
1,獨(dú)立服務(wù)器,或能執(zhí)行命令行(命令行避免超時(shí))
2,啟用了內(nèi)存緩存(建議為 memcache或redis )

操作步驟:
使用方法:
1,請(qǐng)到 http://www.9999xn.com/thread-12045-1-1.html 下載最新對(duì)應(yīng)版本的框架,里面包含了一個(gè)文件class_core.php,直接覆蓋即可。
2,關(guān)閉論壇,避免有發(fā)帖操作。對(duì)數(shù)據(jù)庫(kù)全庫(kù)進(jìn)行備份。
3,確認(rèn)論壇有開(kāi)啟內(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ù)庫(kù)超大需要轉(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ā)帖測(cè)試無(wú)誤后,開(kāi)放論壇。


恢復(fù):
如果測(cè)試后不想使用了,可以按照如下兩個(gè)步驟操作:
1,所有表?yè)Q回MyISAM,恢復(fù) post 表 position 的自增屬性。

問(wèn)題:
使用后出現(xiàn)任何問(wèn)題都可以到BUG區(qū)發(fā)帖反饋http://www.discuz.net/forum-70-1.html
我們建議大家先在測(cè)試論壇上使用無(wú)誤后再部署到正式論壇。
如果有新版或者補(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, 沒(méi)有一定技術(shù)能力,平時(shí)服務(wù)器運(yùn)行良好的網(wǎng)站,應(yīng)繼續(xù)使用默認(rèn)的 MyISAM 版本,Innodb 在使用和維護(hù)上都有更高的要求。
4,在執(zhí)行腳本的時(shí)候一定要保證內(nèi)存足夠,否則很容易造成各種不成功的問(wèn)題。

下載:
【20170801】upload_innodb1.0.8_x3.x-x25.zip (6.32 KB, 下載次數(shù): 170)

X2.5/X3升級(jí)到X3.1:
1,按照官方升級(jí)指南,在執(zhí)行完第四步之后,把這個(gè)附件解壓后把sql文件上傳到install/data目錄下, install_dev.zip (16.06 KB, 下載次數(shù): 177) ,然后再執(zhí)行update腳本。
2,確保安裝了最新框架,確保原始的innodb擴(kuò)展文件都存在,確保至少存在一個(gè)內(nèi)存緩存正常工作。
3,發(fā)帖測(cè)試無(wú)誤后開(kāi)放。




回復(fù)

使用道具 舉報(bào)

本版積分規(guī)則

  • 關(guān)注公眾號(hào)
  • 有償服務(wù)微信
  • 有償服務(wù)QQ

手機(jī)版|小黑屋|Discuz! 官方交流社區(qū) ( 皖I(lǐng)CP備16010102號(hào) |皖公網(wǎng)安備34010302002376號(hào) )|網(wǎng)站地圖|star

GMT+8, 2025-7-2 21:45 , Processed in 0.052675 second(s), 9 queries , Redis On.

Powered by Discuz! W1.0 Licensed

Cpoyright © 2001-2025 Discuz! Team.

關(guān)燈 在本版發(fā)帖
有償服務(wù)QQ
有償服務(wù)微信
返回頂部
快速回復(fù) 返回頂部 返回列表