私は、1.3.x ブランチ上に構築された従来の CakePHP アプリに取り組んでいます。これは、Containable 動作と特に深くネストされたコンテンツを多用しています。
CakePHP フレームワークが深いコンテインの下でクエリを処理する方法が原因で、これが大きなパフォーマンスの問題であることが明らかになりました。1 回のリクエストで、10,000 件を超えるクエリがあり、続いて Cake がデータを 1 つの配列にマージします。
これらの問題が Cake 2.x ブランチで修正されているかどうか、またフレームワークをアップグレードすることでパフォーマンスの問題を改善できるかどうかを確認できますか?
時間の制約があるため、現時点では、システムの一部をアップグレードして Containable を使用しないように書き直すことはできますが、両方を行うことはできません。
他にもメリットがあるのでアップグレードしたいと思いますが、パフォーマンスの問題に確実に対処する必要があります。
深くネストされた包含の例
$this->Event->find('all', array(
'conditions' => $conditions,
'contain' => array(
'SessionDay' => array(
'Activity' => array(
'TimeSlot' => array(
'TimeSlotBooking',
'order' => array('slot_time' => 'asc')
)
)
),
'Activity' => array(
'TimeSlot' => array(
'TimeSlotBooking',
'order' => array('slot_time' => 'asc')
)
),
'Interview' => array(
'InterviewBooking',
'order' => array('interview_time' => 'asc')
),
'EventCode'
)
)
);