現在用的Mantis還是1.0.8版, 這個問題其實在1.1.0版時已經解了.
Mantis在做檔案上傳時, 所呼叫的 function:file_add 中, 有一個檢查用的 function, 名為 diskfile_is_name_unique, 在這裡它確認了 Table:mantis_bug_file_table 的 diskfile 欄位是否與目前要上傳的重覆, 由於這個欄位沒有建 index 的關係, 導致查詢緩慢.
以我實際的情況來說, 在近端最快也要 7 秒, 這還是最近換了新 Server 的結果(以前約 50~60 秒), 如果是以其他辨公室來存取, 還沒換 Server 前, 跑到 timeout 也常發生.
在此之前, 因為眼殘, 追 code 時一直沒注意到這個 function (因為直覺認為是要存入 disk 才需要 call), 所以一直以為是 table 太肥造成的, 還打算要用 MySQL 的 Partitioning 方案解決... XD
因為不甘心, 所以在找機器測 partitioning 前, 又重看了一次 code, 才發現這個盲點, 建好 index 後, 一切順利.