查询方式写1个复杂查询还是多个简单查询

设计查询的时候一个需要考虑的问题是,是否需要将一个复杂的查询分成多个简单的查询。

在传统实现中,总是强调需要数据库层完成尽可能多的工作,这样做的逻辑在于以前总是认为网络通信、查询解析和优化是一件代价很高的事情。

但是这样的想法对于MySQL并不适用,MySQL从设计上让连接和断开连接都很轻量级,在返回一个小的结果查询方面很高效。现代的网络速度比以前要快很多,无论是带宽还是延时。在某些版本的MySQL上,即使在一个通用服务器上,也能够运行每秒超过10万的查询,即使是一个千兆网卡也能轻松满足每秒超过2000次的查询。所以运行多个小查询现在已经不是大问题了。

MySQL内部每秒能够扫描内存中上百万行数据,相比之下,MySQL响应数据给客户端就慢得多了。在其他条件都相同的时候。使用尽可能少的查询当然是更好的。但是有时候,将一个大查询分解为多个小查询是很有必要的。但是无需害怕这样做,可以好好衡量一下这么做会不会减少工作量。

不过,在应用设计的时候,如果一个查询能够胜任时还写成多个独立查询是不明智的。例如,我们看到有些应用对一个数据表做10次独立查询来返回10行数据,每个查询返回一条结果,查询10次。

总结:1个查询能搞定的事情就不要写多个,除非多个查询可以减少较多的工作量。

本文来自投稿,不代表微擎百科立场,如若转载,请注明出处:https://www.w7.wiki/develop/3179.html

发表评论

登录后才能评论