比如我要更新用户的已读和未读信息,数据库中有一个字段 isread (0表示未读 1表示已读)
由于判断标准是,当用户点击【消息评论】就认为数据已读了。
那问题来了,sql语句是直接用
UPDATE ftm_message SET isread =1 where uid = uid 呢?
还是先把那26条未读的数据先取出来 在用 for循环逐条更新状态呢?
请问那种效率要高一点啊
比如我要更新用户的已读和未读信息,数据库中有一个字段 isread (0表示未读 1表示已读)
由于判断标准是,当用户点击【消息评论】就认为数据已读了。
那问题来了,sql语句是直接用
UPDATE ftm_message SET isread =1 where uid = uid 呢?
还是先把那26条未读的数据先取出来 在用 for循环逐条更新状态呢?
请问那种效率要高一点啊
你说的这种,还是以实际业务需求(产品人员)为准吧。需求不一样,做法不一样。
第一种的bug就是所有消息都标记已读(可能会出现未看到的消息也标记,但性能会更优)
第二种,无第一种bug,但性能会稍有影响。
决定权由需求方决定。你是简单问题复杂化了。
以上方法不考虑其他方案解决性能问题(如nosql等)
2 回答2.4k 阅读✓ 已解决
5 回答1.5k 阅读
2 回答2.2k 阅读
2 回答1k 阅读✓ 已解决
3 回答2.1k 阅读
1 回答1.5k 阅读✓ 已解决
3 回答654 阅读✓ 已解决
这种你可以自己做实验试试,多做几次求个均值什么的,哪里用得着问嘛。
还有这种小数据量,其实没什么差别,如果数据很大,可以把多个update语句批量执行,而不是for循环一条一条执行,速度会快很多