私は他のデータと一緒に約20のフィールドにスコアをつけたり、それを評価する評価システムを持っています。この問題は設計上の問題が多いかもしれませんが、ケーキはapache2がCPUを急上昇させる原因になります。CakePHP複数の外部キーを使用したパフォーマンス
私は単純なID、名前である推奨と呼ばれるテーブルを持っています。このテーブルは、このような何かが移入されます:
1 - 正しい 2 - 不正な 3 - NAレビュー・テーブルが推奨テーブルへの外部キーのフィールドの数を持ってい
- 4がありません。
フィールド1 - Field20参照提言ID
私が見るものは、すべてのページリクエストは、私が参照しますページを打っていないよ場合でも(apache2のはどこでも50から90パーセントのCPUからの消費)CPUスパイクということですレビュー。
これは、ケーキがモデルバインディングを処理する方法と関係があります。私は列挙型のようなものを使うことができましたが、それは柔軟性がありません。
ケーキがApacheを狂ったようにしている理由について、より良いデザインやデバッグ方法についてのご意見はありますか?
var $name = 'Review';
var $actsAs = array('Containable');
var $validate = array(
'service_request' => array(
'minLength' => array(
'rule' => array('minLength', 8),
'message' => 'Enter a valid Service Request Number'
),
'maxLength' => array(
'rule' => array('maxLength', 8),
'message' => 'Enter a valid Service Request Number'
),
'numeric' => array(
'rule' => 'numeric',
'message' => 'Enter a valid Service Request Number'
)
)
);
var $belongsTo = array(
'Employee' => array(
'className' => 'Employee',
'foreignKey' => 'reviewer_id',
),
'Reviewer' => array(
'className' => 'Employee',
'foreignKey' => 'reviewer_id'
),
'Reviewee' => array(
'className' => 'Employee',
'foreignKey' => 'reviewee_id'
),
'Rating' => array(
'className' => 'Rating',
'foreignKey' => 'rating_id',
),
'SrSummary' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_summary'
),
'SrProduct' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_product'
),
'SrVersion' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_version'
),
'SrRelease' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_release'
),
'SrComponent' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_component'
),
'SrTechnicalProblem' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_technical_problem'
),
'SrCommunicationOwner' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_communication_owner'
),
'SrCommunicationGroup' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_communication_group'
),
'SrOwnerGroup' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_owner_group'
),
'SrOwnerGroupGeo' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_owner_group_geo'
),
'SrStatus' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_status'
),
'SrSubstatus' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_substatus'
),
'SrSeverity' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_severity'
),
'SrPriority' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_priority'
),
'SrHwPlatform' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_hwplatform'
),
'SrBuild' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_build'
),
'SrSerial' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_serial'
),
'SrManualSerial' => array(
'className' => 'Recommendation',
'foreignKey' => 'sr_manual_serial'
),
'Note' => array(
'className' => 'Note',
'foreignKey' => 'note_id'
),
'Timing' => array(
'className' => 'Timing',
'foreignKey' => 'timing_id'
)
);
あなたが推測しているように聞こえます。ログの内容を確認するためにログを確認しましたか? –
私は推測していない、私は離れてアプリケーションを取って、一枚ずつそれを再構築した。私はすでに強い疑いを持っていました。レビューモデルの推奨テーブルに$ belongsToの関連付けを削除した場合、問題は解決しません。私はまた、私のApacheのログを見てきましたが、何も問題として際立っていません。 – Jeff
あなたのポストでは、「ケーキがモデルバインディングを扱う方法と関係があると思います」と言われました。とにかく、問題が起こっていると推測できるところでいくつかのコードを共有できますか? –