第 1 頁 (共 4 頁)
[討論] phpBB最有價值的MOD—Cached Generation
發表於 : 2005-10-02 12:18
由 flyinghail
昨天在phpbbstyles看到了DoobDee做的新MOD——Cached Generation,地址:
http://www.phpbbstyles.com/viewtopic.php?p=52291,目前還是beta狀態
研究了一下感覺非常有價值,我認爲在phpBB來説其價值遠遠超過了其他MOD,這個MOD修改了db/mysql.php,可以針對任何一次查詢生成緩存,這樣可以大大減少查詢次數,看phpbbstyles.com就可以知道首頁查詢只有3次,而且這個MOD的緩存技術是通用的,任何一句'SELECT'都可以使用,相對于恐怖的Categories Hierarchy(幾乎已經把phpBB改成另一個論壇了)這個MOD使用的緩存技術更通用,而且可以兼容任何的其他MOD
當然緩存不能亂用,否則根本起不到緩存的作用,大家一起研究下吧,像哪幾句查詢需要緩存,如何更好的緩存查詢(就是盡量讓緩存之後存活的時間更長,好比如果首頁不讀取發貼數和新貼、viewforum.php不讀取瀏覽次數、回復數、最後發貼可以讓緩存存活時間更長),如何選擇合適的清理緩存的條件,甚至這個MOD還需要進行什麽樣的處理都是很有價值的討論話題
phpBB之所以比Discuz和phpwind慢,很大一定程度上就是因爲phpBB不存在任何的緩存(當然部分大型MOD的存在也是很重要的因素),Discuz的特色就是在session和cache,phpwind的特色則是除了緩存還利用了部分文本數據庫的技術來加快速度(老的phpwind就是ofstar的MySQL版),如果將這個MOD做好相信phpBB將更有競爭力
這個MOD應該算是那種對於系統影響很大的那一類,
如果看不懂MOD每一步在做什麽請不要隨便嘗試用於公開發佈的環境,另外這個MOD可能會生成大量的cache文件,如果沒有好的緩存清理方案,空間不大的不要輕易嘗試,這個MOD目前有一処錯誤看
http://www.phpbbstyles.com/viewtopic.php?p=52291#52291,估計是筆誤\r
相信站長們都會喜歡這個MOD的,的確是很有意思的東東
絕對有研究價值
發表於 : 2005-10-02 12:33
由 Kill
等他成熟了再來玩玩看
剛才有看了一下原碼\r
對資料庫讀取應該有很大的幫助
發表於 : 2005-10-02 13:02
由 俊俊
我已經裝好了
不過到處都是 Error 呢...
都是 functions .php / _post.php 出錯的
好像跟簡易子版面撞了
發表於 : 2005-10-02 13:07
由 俊俊
幸好早已 Backup 了 ==v
還原~~.....
Orz , 裝的時候沒留言到\r
About
This mod is a very powereful mod:
- Caches SQL Queries (faster forum)
- Ads Page generation time (in overall_footer.php) <--
- Ads SQL querie counter (in overall_footer.php) <--筆誤?
- This is a LOT more powerful that Smartors page generation and is highly effecient for forum speed.
- mySQL (not mysql4.php) is supported at the moment
發表於 : 2005-10-02 13:28
由 w2812451
算你衰~我安裝成功了!沒有跟任何外掛發生碰撞
http://bnb.twbbs.org
This mod is a very powereful mod:
// 應該叫做powerful 意思是說這是一個非常強力的外掛
- Caches SQL Queries (faster forum)
// 高速緩衝SQL Queries(論壇加速)
- Ads Page generation time (in
overall_footer.php) <--
// 再overall_footer.php顯示頁面生成時間(我記得通常都已經有了)
- Ads SQL querie counter (in
overall_footer.php) <--筆誤?
// 再overall_footer.php顯示讀取資料庫的數量 通常都會有安裝吧!
- This is a LOT more powerful that Smartors page generation and is highly effecient for forum speed.
// 不用說了!還是再說他的加速功能~
- mySQL (not mysql4.php) is supported at the moment
// 有關mySQL的資源~
發表於 : 2005-10-02 13:51
由 ETERNAL
看到安裝時間要80分鐘,整個人都懶了
有很有空很有空閒到不行再來玩玩看吧\r
或者等正式版再來裝..
DZ雖然是混血的,不過DZ的高速,真讓人羨慕阿...
發表於 : 2005-10-02 14:11
由 w2812451
其實有絕大部分的修正內容都長的一樣~
我只花了2分鐘!那個作者騙你的啦!
發表於 : 2005-10-02 15:03
由 吉川拓也
w2812451 寫:其實有絕大部分的修正內容都長的一樣~
我只花了2分鐘!那個作者騙你的啦!
那你安裝好之後有感覺到變化嗎 ?
發表於 : 2005-10-02 15:04
由 ETERNAL
w2812451 寫:其實有絕大部分的修正內容都長的一樣~
我只花了2分鐘!那個作者騙你的啦!
2分鐘??
有這麼快嗎
我剛剛去看了你的網站,首頁是\r
頁面生成時間: 0.0733s (PHP: 100% - SQL: 0%) - 共讀取資料庫: 33 - Gzip 壓縮功能 開啟 - 除錯模式 關閉
33耶
...還是很高阿\r
我的沒有安裝,才17而已...
一般DZ的論壇是10以下..
發表於 : 2005-10-02 15:10
由 w2812451
不過速度有加快!而且你要考慮到我裝的外掛很多!
而且它只緩衝了一些地方而已!我覺得還有一堆東西都可以加速~
我認為這個外掛非常適合裝了一大堆外掛造成phpbb變慢的人裝的!
不過如果論壇速度很慢的話,建議也要裝這個!
發表於 : 2005-10-02 16:19
由 俊俊
functions.php 在裝簡易子版面的時候在 jumpbox 附近被重寫過, 好像這樣會使它不能讀取版面的資料(安裝後)
發表於 : 2005-10-02 18:25
由 吉川拓也
修改上基本沒什麼問題但是在 db/mysql.php 這段怪怪的 ..
#
#-----[ FIND ]------------------------------------------
#
代碼: 選擇全部
// Remove any pre-existing queries
unset($this->query_result);
#
#-----[ AFTER, ADD ]------------------------------------------
#
代碼: 選擇全部
// Check cache
$this->caching = false;
$this->cache = array();
$this->cached = false;
if($query !== '' && $cache)
{
global $phpbb_root_path;
$hash = md5($query);
if(strlen($cache))
{
$hash = $cache . $hash;
}
$filename = $phpbb_root_path . 'cache/sql_' . $hash . '.php';
if(@file_exists($filename))
{
$set = array();
include($filename);
$this->cache = $set;
$this->cached = true;
$this->caching = false;
return 'cache';
}
// echo 'cache is missing: ', $filename, '<br />';
$this->caching = $hash;
}
// not cached
// echo 'sql: ', htmlspecialchars($query), '<br />';
只要一加上該段 index.php 首頁就會版面全部消失@@
發表於 : 2005-10-02 19:39
由 flyinghail
吉川拓也 寫:修改上基本沒什麼問題但是在 db/mysql.php 這段怪怪的 ..
#
#-----[ FIND ]------------------------------------------
#
代碼: 選擇全部
// Remove any pre-existing queries
unset($this->query_result);
#
#-----[ AFTER, ADD ]------------------------------------------
#
代碼: 選擇全部
// Check cache
$this->caching = false;
$this->cache = array();
$this->cached = false;
if($query !== '' && $cache)
{
global $phpbb_root_path;
$hash = md5($query);
if(strlen($cache))
{
$hash = $cache . $hash;
}
$filename = $phpbb_root_path . 'cache/sql_' . $hash . '.php';
if(@file_exists($filename))
{
$set = array();
include($filename);
$this->cache = $set;
$this->cached = true;
$this->caching = false;
return 'cache';
}
// echo 'cache is missing: ', $filename, '<br />';
$this->caching = $hash;
}
// not cached
// echo 'sql: ', htmlspecialchars($query), '<br />';
只要一加上該段 index.php 首頁就會版面全部消失@@
不是這裡,是安裝文件的一処錯誤,主題裏面我也提到過了,這一段要是去掉了那等於根本沒有使用緩存
發表於 : 2005-10-02 20:43
由 俊俊
剛才在自家測試到\r
| Page Generation:0.2071 seconds| SQL Queries:10 |
如果是網上空間應該會更快呢=.=
發表於 : 2005-10-02 21:32
由 w2812451
太好用了~剛剛用ultraedit把所有的
if( !($result = $db->sql_query($sql)) )
置換成
if( !($result = $db->sql_query($sql, false, true)) )
再進入的讀取畫面(應該有些人有看過,那是預先瀏覽功能)
的時候會有點LAG
開啟index.php花了1秒多
不過重點來了!我重新開啟後,資料庫從32跑到剩下7
原本紀錄的0.053s變成了0.01s
太快了吧!
+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-+-
不過再重新開一次,沒用了ˊˋ
可能是...............伺服器凸然秀斗~哈哈