プロが教えるわが家の防犯対策術!

UPDATE、SELECTで共に同一のテーブルの同一の主キーを指定したWHERE検索をEXPLAINで行ったところ、
SELECTに関してはtype値がconstになり、
UPDATEに関してはtype値がrangeになりました。
その他の違いといえば、UPDATEの場合はExtra値がUsing whereになるだけで、他は特に差異がありません。
UPDATEで変更する列にインデックスを作成してみても(WHEREで指定する列も含め)、やはりconstにはなりませんでした。
なぜこのような違いが発生するのでしょうか?
また、UPDATEステートメントでもtype値をconstにするためにはどのようにすればよいでしょうか?

よろしくお願いいたします。

A 回答 (1件)

そもそもUPDATEをEXPLAINする必要があるかどうかはおいとくとして


(一般的な環境ではエラーになる?)

SELECTは単純にレコードをズバリ指定できればconstになりますが、
UPDATEは1レコードだけみればよいのではなくインデックスやユニークなどの
属性も含めて処理するからrangeになるのではないかと勝手に思っています
そういうものだと思うしかないような・・・
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!