dポイントプレゼントキャンペーン実施中!

update test_table set プライマリーキー=1,項目2="test"
where プライマリーキー=1

のように面倒くさいので、プライマリーキーもset句に書くと、
パフォーマンスが遅くなったりするでしょうか?
と言いますか、MySQLでWHERE句と同一値のプライマリーキーは
内部的に更新が行われるのでしょうか?

A 回答 (3件)

RDBMS側から見れば、「primary keyも更新対象である」というアクセス計画に加え、「それが同値更新であるか」という判断をし、さらに更新の有無により処理を切り分けるのはオーバヘッドになります。


この辺の処理は、RDBMS、さらにはバージョンにより、内部処理が変わっている場合もあります。
    • good
    • 0

プライマリーキーも更新が行われます。



もちろん、重複は許されませんね。
    • good
    • 0

>面倒くさいので、プライマリーキーもset句に書く



面倒くさいのならふつうは書かないのでは?
update test_table set 項目2="test"
where プライマリーキー=1

ほんの少しだけ効率的ですし。
    • good
    • 0

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