详细说来,拆解每个查询消耗的时间,并不是每个步骤都与行数有关。查1行,查10行,网络通讯都是占大部分时间,所以是10倍。但是,如果你一次查10w行,并不会比10w次1行快10w倍,因为大数据量查询本来就慢。延伸一下,以前我们做过一个优化,又来用这个case连续讲了4-5年。这是一个UPDATE table ...
mysql 每次查询一条数据查10次 和一次查询10条数据效率有多少差距
臆测一下,十倍。
为什么说是臆测呢,因为我猜这并不是问很极端的情况。
详细说来,拆解每个查询消耗的时间,并不是每个步骤都与行数有关。
查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瓶颈。
写这个例子,是要说,优化要根据具体情况分析,数据量和使用情况都会影响结论。2016-01-22