Sql 11个常规查询或10个内部连接查询哪个更好?
基本上,我有一个经常查询postgres DB的程序,在某些情况下,它需要从单独的表中获取额外的信息。我可以从一开始就从一个内部连接获得所有信息,但大多数时候连接信息是不需要的 我估计最多有1/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子句的查询相比,查询的开销有多大?大多数联接并不昂贵。另一方面,每个查询都需要时间,因为为了检索数据,您的程序必须与数据库进行对话
10+1=11个常规查询
或
10个带JOIN的查询
10是一个保守的猜测,在需要连接信息之前可能需要100多个查询。与包含JOIN子句的查询相比,查询的开销有多大?大多数联接并不昂贵。另一方面,每个查询都需要时间,因为为了检索数据,您的程序必须与数据库进行对话(即,告诉它要发出什么查询,告诉它将获得多少列以及哪种数据类型,等等) 使用联接加载数据可以使程序更具响应性。比如,用户滚动浏览主数据列表,在某些行上必须检索详细数据。如果必须在滚动时从数据库中获取这些数据,那就太可怕了 另一方面,如果用户滚动浏览主数据列表,并且如果他们想查看详细数据,则必须按下按钮,则预计会有一些等待时间。在这种情况下,您可以从数据库中获取它
因此,答案是:视情况而定。这两种方法都是有效的。选择一个看起来更适合您的。通常,亲自测试比询问我们更快