長期以來,我都在忍耐 MediaWiki 架在 DreamHost shared hosting 上的低效能,因為領教過更誇張的 Drupal,所以耐受度也拉高了,覺得多等個幾秒也還好。
但是最近開始認真將 MediaWiki 當成網路筆記本後,就愈來愈覺得,每次再這樣多等個幾秒,除了浪費時間,剛剛得到的靈感恐怕也就忘了,所以就稍稍研究了一下把效能稍加提升的方法。
在沒有登入 MediaWiki 的情形下,$wgUseFileCache = true;
的效益很大,會生出靜態頁面,省掉了「到資料庫撈資料出來,再生成頁面」的昂貴開銷。這個在未登入、單純查看筆記的場景下確實是加速很多。
但是如果在登入的狀態下,由於各人的變數不同(即使這個 Wiki 只有我一個使用者),所以如果要生成靜態頁面,要處理的毛多很多,就有點不實際。不過 MediaWiki 另外有個設定 $wgCacheDirectory
會將比如 L10N 的資源編成快取檔,也省下了不少的 DB 操作。把這個路徑設定弄好,也能在登入的狀態下,換到不少的效能。
除了這兩項設定,$wgMainCacheType = CACHE_ACCEL;
也很明顯,如果 CACHE_ACCEL
不適用,CACHE_DB
可以碰碰運氣,看看業者的 MySQL server 效能撐不撐的起來(但是別抱太大希望)。