2010-10-13 96 views

回答

0

使用默認

$this->Post->find('list'); 

CakePHP的使這個查詢:

SELECT `Post`.`id`, `Post`.`name` FROM `posts` AS `Post` WHERE 1 = 1 

沒有遞歸查詢,因此更改該命​​令將不會提高查詢

0

試試吧!

在調試模式下,Cake向您顯示每個查詢的運行時間。嘗試兩種方法,看看是否有任何改變。我的猜測是否定的,因爲它只是從一張表中獲取list查詢的數據。

+0

還有一個問題是緩存請求操作緩存它到處的所有控制器或只有特定的位置。希望我讓自己清楚 – aWebDeveloper 2010-10-13 07:17:13

+0

@Web不幸的是,我不明白......如果它是一個單獨的主題,也許你想爲它做一個單獨的問題。 – deceze 2010-10-13 07:20:13

+0

@Web Developer - 我同意這應該是另一個問題,但看看這個網站。我認爲您可以使用請求操作來緩存視圖的某些部分,例如最近的文章邊框。 http://mark-story.com/posts/view/how-using-requestaction-increased-performance-on-my-site/ – jimiyash 2010-10-13 09:19:00

1

沒有,遞歸= -1意志在$ this-> Model-> find('list')的情況下沒有幫助完整。

如果您想查找('all')或find('first'),那麼它會更充分的使用。

例如。用戶,VatInfo,VatInfoLog三個型號則

1)遞歸= -1

$這個 - > VatInfo->找到( '全部') 只會返回VatInfo表中的數據。

2)遞歸= 0

$這個 - > VatInfo->找到( '全部') 將返回$屬於關聯的用戶和VatInfo 2表中的數據。

3)遞歸= 1

$這個 - > VatInfo->找到( '全部') 將返回$屬於關聯用戶,$的hasMany VatInfoLog而VatInfo 3個表中的數據。