Slide 28
Slide 28 text
1)1ΧϯϑΝϨϯεԭೄ
(緊急⼿段)FORCE INDEX(USE INDEX)を使う
●CakePHP2の場合
○FROMの直後にUSE INDEXを付与することが可能
■公式にサポートされている⽅法ではないので注意
●注意点
○user_id_createdのインデックスを消すとエラーになる
■PRIMARYなら⼤丈夫
○MySQLの統計情報に関わらず同じインデックスを使い続ける
■特にFORCE INDEXの場合
●なるべくUSE INDEXにしておいた⽅が良い
■定期的に観測し、問題なくなったら削除する
$this->Payment->find('first', [
'conditions' => [
'user_id' => $id,
'created >' => date('Y-m-d', strtotime($format)),
],
'joins' => ['USE INDEX(user_id_created)'],
SELECT
FROM payments USE INDEX (use_id_created)
WHERE user_id = $id AND created > '2019-09-16'
ORDER BY id
LIMIT 1