Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/79.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/database/9.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 11个常规查询或10个内部连接查询哪个更好?_Sql_Database_Postgresql_Join_Inner Join - Fatal编程技术网

Sql 11个常规查询或10个内部连接查询哪个更好?

Sql 11个常规查询或10个内部连接查询哪个更好?,sql,database,postgresql,join,inner-join,Sql,Database,Postgresql,Join,Inner Join,基本上,我有一个经常查询postgres DB的程序,在某些情况下,它需要从单独的表中获取额外的信息。我可以从一开始就从一个内部连接获得所有信息,但大多数时候连接信息是不需要的 我估计最多有1/10的时间需要加入信息,那么哪个性能更好呢 10+1=11个常规查询 或 10个带JOIN的查询 10是一个保守的猜测,在需要连接信息之前可能需要100多个查询。与包含JOIN子句的查询相比,查询的开销有多大?大多数联接并不昂贵。另一方面,每个查询都需要时间,因为为了检索数据,您的程序必须与数据库进行对话

基本上,我有一个经常查询postgres DB的程序,在某些情况下,它需要从单独的表中获取额外的信息。我可以从一开始就从一个内部连接获得所有信息,但大多数时候连接信息是不需要的

我估计最多有1/10的时间需要加入信息,那么哪个性能更好呢

10+1=11个常规查询
10个带JOIN的查询


10是一个保守的猜测,在需要连接信息之前可能需要100多个查询。与包含JOIN子句的查询相比,查询的开销有多大?

大多数联接并不昂贵。另一方面,每个查询都需要时间,因为为了检索数据,您的程序必须与数据库进行对话(即,告诉它要发出什么查询,告诉它将获得多少列以及哪种数据类型,等等)

使用联接加载数据可以使程序更具响应性。比如,用户滚动浏览主数据列表,在某些行上必须检索详细数据。如果必须在滚动时从数据库中获取这些数据,那就太可怕了

另一方面,如果用户滚动浏览主数据列表,并且如果他们想查看详细数据,则必须按下按钮,则预计会有一些等待时间。在这种情况下,您可以从数据库中获取它


因此,答案是:视情况而定。这两种方法都是有效的。选择一个看起来更适合您的。

通常,亲自测试比询问我们更快