MySQL即使值不变,我是否应经常更新日期字段?

时间:2014-02-26 07:47:48

标签: php mysql performance

用户每次登录后都会更新上次登录日期。

UPDATE `last_login` SET `date`= CURDATE() WHERE `user_id` = $login

如果用户在一天内登录10次,则date字段将以完全相同的日期更新10次。

问题:如果在更新date之前,检查该字段中的值是否与CURDATE()不同,是否有任何性能优势案例更新吗? 它将减少不必要的更新次数,但会为每次单独的登录添加额外的DB。

1 个答案:

答案 0 :(得分:2)

只需为此添加条件

  UPDATE `last_login`
  SET `date`= CURDATE()
  WHERE `user_id` = $login
  AND `date` <> CURDATE()       << that one

只有当它的日期不同时才会更新

  

它将减少不必要的更新次数,但会为每个单独的日志添加额外的数据库

不,这不是一次额外的旅行,你已经在那次旅行了。这不会增加显着的性能开销,因为应该 user_id必须是主要的或至少是一个索引,并且只返回1行进行该比较。