延伸一下,以前我们做过一个优化,又来用这个case连续讲了4-5年。 这是一个UPDATE table SET col = col + N WHERE key = ?的查询,大概有5k QPS左右,跑不动。 改成了UPDATE table SET col = col + 1 WHERE key IN (?, ?, ?..... )的样子,数据库CPU从40%降到1%。 这个改变没有改变任何索引使用和网络传输,是不常见的,解析SQL瓶颈。 写这个例子,是要说,优化要根据具体情况分析,数据量和使用情况都会影响结论。