MySQL update的效率问题?

比如我要更新用户的已读和未读信息,数据库中有一个字段 isread (0表示未读 1表示已读)

由于判断标准是,当用户点击【消息评论】就认为数据已读了。

那问题来了,sql语句是直接用

UPDATE ftm_message SET isread =1 where uid = uid 呢?

还是先把那26条未读的数据先取出来 在用 for循环逐条更新状态呢?

请问那种效率要高一点啊

阅读 3.2k
2 个回答

这种你可以自己做实验试试,多做几次求个均值什么的,哪里用得着问嘛。

还有这种小数据量,其实没什么差别,如果数据很大,可以把多个update语句批量执行,而不是for循环一条一条执行,速度会快很多

你说的这种,还是以实际业务需求(产品人员)为准吧。需求不一样,做法不一样。

第一种的bug就是所有消息都标记已读(可能会出现未看到的消息也标记,但性能会更优)
第二种,无第一种bug,但性能会稍有影响。

决定权由需求方决定。你是简单问题复杂化了。


以上方法不考虑其他方案解决性能问题(如nosql等)

撰写回答
你尚未登录,登录后可以
  • 和开发者交流问题的细节
  • 关注并接收问题和回答的更新提醒
  • 参与内容的编辑和改进,让解决方法与时俱进
推荐问题