同事反映在用Drupal Ubercart搭建的網站中添加産品時速度非常慢的問題,産品頁面可以編輯,但在添加關聯下載文件的時候就需要長時間等待甚至超時報錯,先以為是服務器性能或者MySQL的問題,折騰了兩天都沒有多大效果,今天把排錯神器devel安裝上,很快就發現是該頁面需要運行8000多次數據庫查詢,而我們現在大約有4000個産品關聯文件,也就是該頁面需要循環4000次、每次2個數據庫查詢。
網上搜索了很久(用ubercart feather file slow等關鍵詞都找不到準确的,後來用devel發現的重複MySQL查詢名稱查到的),終于找到與我們的情況基本一緻的_uc_file_gather_files needs to be fixed (or needs config),該文給出了一個補丁解決辦法,我們參照修改後,很快就解決了。
開源的系統有好處、有壞處,關鍵要能修改程序才能按自己的要求來用好。
评论