用户每次登录后都会更新上次登录日期。
UPDATE `last_login` SET `date`= CURDATE() WHERE `user_id` = $login
如果用户在一天内登录10次,则date
字段将以完全相同的日期更新10次。
问题:如果在更新date
之前,检查该字段中的值是否与CURDATE()
不同,是否有任何性能优势案例更新吗?
它将减少不必要的更新次数,但会为每次单独的登录添加额外的DB。
答案 0 :(得分:2)
只需为此添加条件
UPDATE `last_login`
SET `date`= CURDATE()
WHERE `user_id` = $login
AND `date` <> CURDATE() << that one
只有当它的日期不同时才会更新
它将减少不必要的更新次数,但会为每个单独的日志添加额外的数据库
不,这不是一次额外的旅行,你已经在那次旅行了。这不会增加显着的性能开销,因为应该 user_id
必须是主要的或至少是一个索引,并且只返回1行进行该比较。