单个大查询或几个小查询哪个更快?
Which one is faster single big query or few small queries?
所以我想从数据库中抓取数据,哪种方法更快,创建多个查询或一个多查询?
一般是多查询。但这取决于很多东西,例如硬件,数据结构等
但是每个连接确实需要一点时间。
每个"round trip"到数据库都会有一些开销。所以往返次数越少,开销就越少。还要考虑更少的请求意味着从客户端到服务器的数据包更少。如果合并查询的结果正是您想要的,那么单一查询就是最佳选择。如果您的单个查询返回额外或冗余数据(可能是因为反规范化),那么单次往返的开销节省可能会在传输的额外数据中丢失。
另一个考虑因素是延迟。如果查询必须按顺序完成,因为一个查询的某些部分输出需要下一个查询的输入,合并到一个查询将消除所有单个较小查询之间的所有网络延迟,因此最终结果可以交付更快。但是,如果较小的查询彼此独立,并行启动它们可以更快地交付所有结果,尽管效率较低。
底线:答案取决于您的具体情况。获得答案的最佳方式可能是同时实施这两种方式,测试并比较每种实施方式的资源使用情况。
所以我想从数据库中抓取数据,哪种方法更快,创建多个查询或一个多查询?
一般是多查询。但这取决于很多东西,例如硬件,数据结构等
但是每个连接确实需要一点时间。
每个"round trip"到数据库都会有一些开销。所以往返次数越少,开销就越少。还要考虑更少的请求意味着从客户端到服务器的数据包更少。如果合并查询的结果正是您想要的,那么单一查询就是最佳选择。如果您的单个查询返回额外或冗余数据(可能是因为反规范化),那么单次往返的开销节省可能会在传输的额外数据中丢失。
另一个考虑因素是延迟。如果查询必须按顺序完成,因为一个查询的某些部分输出需要下一个查询的输入,合并到一个查询将消除所有单个较小查询之间的所有网络延迟,因此最终结果可以交付更快。但是,如果较小的查询彼此独立,并行启动它们可以更快地交付所有结果,尽管效率较低。
底线:答案取决于您的具体情况。获得答案的最佳方式可能是同时实施这两种方式,测试并比较每种实施方式的资源使用情况。