我是CakePHP框架的新手,正在嘗試設置「Hello World」項目。處理它時,執行簡單的數據庫查詢時,CakePHP的響應非常緩慢。執行簡單的數據庫查詢時CakePHP的響應非常慢
下面是我做的步驟:
- 下載CakePHP的框架(2.3.0 RC1),並將它設置
- 名爲「測試」的空表創建一個「測試」 DB 。
編輯默認AppController.php文件如下:
class AppController extends Controller { var $uses = array('Test'); function say_hello() { $this->Test->query("select * from test where id=0"); echo "hello"; } }
在那之後,我訪問的鏈接的「http://本地主機/應用/ say_hello」,並花了超過1秒響應。
如果我註釋掉的查詢語句如下:
class AppController extends Controller {
var $uses = array('Test');
function say_hello() {
//$this->Test->query("select * from test where id=0");
echo "hello";
}
}
然後,只花了約60ms的響應。
這對我來說不正確,因爲在空表上執行簡單查詢不應該花費大約940ms。我已經嘗試使用DebugKit進行調試,並且它顯示ControllerAction(在這種情況下,say_hello操作非常簡單)所花費的時間超過了1秒。還要注意緩慢問題不是由數據庫引起的,因爲DebugKit顯示執行say_hello動作時只有一個查詢,並且該查詢幾乎花費了0ms來完成。
我不確定是什麼原因導致了這種緩慢。任何有經驗的CakePHP成員都可以讓我瞭解這種情況下的錯誤嗎?我還應該做些什麼來排除故障並解決問題?
謝謝。
在第一個請求之後請求仍然需要1秒嗎? – Jim
DebugKit應該告訴你這個查詢本身需要多長時間。我假設額外的時間是爲它加載模型或其他類似的東西 - 對吉姆來說,我猜想它不會在第一個之後添加每個查詢額外的1秒。 – Dave
嘗試刪除'$ uses'數組,並用'ClassRegistry :: init('Test') - > query()'替換'$ this-> Test-> query',是否需要更少的時間? (在第一個之後檢查它,並記住清除緩存)。 – Nunser