• 締切
  • 困ってます

UPDATEとSELECTのEXPLAINの違い

  • 質問No.8528159
  • 閲覧数177
  • ありがとう数6
  • 回答数1

お礼率 16% (79/482)

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

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

回答 (全1件)

  • 回答No.1

ベストアンサー率 51% (3827/7415)

そもそもUPDATEをEXPLAINする必要があるかどうかはおいとくとして
(一般的な環境ではエラーになる?)

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

その他の関連するQ&Aをキーワードで探す

ピックアップ

ページ先頭へ