只有当行存在时,我才需要在表中更新行。
UPDATE table1 SET ctime = now() WHERE id = 112233;
或之前使用select
IF EXISTS (SELECT 1 FROM table1 WHERE id = 112233) THEN
UPDATE table1 SET ctime = now() WHERE id = 112233;
END IF;
哪种查询更能减少写入操作?
出于性能目的,我是否需要在UPDATE之前执行SELECT以检查行是否存在?
答案 0 :(得分:5)
此查询:
UPDATE table1
SET ctime = now()
WHERE id = 112233;
完全符合您的要求。它会更新符合WHERE
条件的所有行 - 超过零行。
如果您担心效果,请在table1(id)
上创建索引。如果id
是主键,那么它已经有一个索引。