仰々しいタイトルですが、ようするにCakePHPでテーブルスキャンせずに削除するTRUNCATEを使うメモです。
CakePHPでは普段独自のクエリを書かないのでModel->query()の存在もついつい忘れがちなんですよね。
TRUNCATE構文はTRUNCATE [テーブル名];なので、
$this->TmpHoge->query('TRUNCATE tmp_hoges;');
でOK。
Model->query()を使えば任意のSQLクエリが実行できるのでTRUNCATEに限らず、複雑なJOINやサブクエリなどにも対応できます。
ちなみにTRUNCATEはロールバックが効かないデータベースが多いので注意して使ってくださいね。
僕は時間が掛かるクエリの実行結果を一定期間保存する仮テーブルの更新の時などにだけ利用しています。