我目前正在使用Entity Framework,并且对内部联接有性能问题。
从总体上看,以下2种情况中哪一种是最好的?
出于简单起见,此示例假设兄弟姐妹之间存在一对一的关系。
(1)内部联接:
import AuthScreen from "./../screens/Auth/auth"
import { createStackNavigator } from 'react-navigation';
export const authNavigation = createStackNavigator(
{
Landing: {
screen: AuthScreen
}
},
{
initialRouteName: 'Landing',
}
)
(2)可选的多个查询:
AuthScreen
那哪种情况最适合每种情况?
对于没有家人的人,或者有父母,母亲,兄弟和姐妹的人,一个人比另一个人好吗?
答案 0 :(得分:3)
选项(1)应该总是更好,因为JOIN在数据库级别执行。根据经验,您可以说本机数据库检查比代码检查要快,并且数据库和代码之间的多次往返总是比单个检查慢。由于数据库无论如何都会隐式地检查联接上的空ID,因此无需在代码中执行此操作,也无需为此添加额外的往返。如果数据库知道查询的目的,数据库将能够自动优化执行计划,这可以进一步提高性能-尤其是在正确设置约束和/或频繁执行查询的情况下。
也许有人可以为此添加100%的基准,但是从纯粹的逻辑角度来看,如果没有任何奇怪的事情,这应该是正确的。