mysql 每次查询一条数据查10次 和一次查询10条数据效率有多少差距

兄弟姐妹,打扰一下,mysql 每次查询一条数据查10次 和一次查询10条数据效率有多少差距
最新回答
旅行号行星

2024-11-24 13:02:50

臆测一下,十倍。
为什么说是臆测呢,因为我猜这并不是问很极端的情况。

详细说来,拆解每个查询消耗的时间,并不是每个步骤都与行数有关。
查1行,查10行,网络通讯都是占大部分时间,所以是10倍。
但是,如果你一次查10w行,并不会比10w次1行快10w倍,因为大数据量查询本来就慢。

延伸一下,以前我们做过一个优化,又来用这个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瓶颈。
写这个例子,是要说,优化要根据具体情况分析,数据量和使用情况都会影响结论。