我似乎错过了一些东西。我一直读到,在我读过的大多数文章中,您应该使用联接而不是子选择。然而,我自己运行一个快速实验表明,当涉及到执行时间时,子查询取得了巨大的胜利。
试图获取所有出价者的名字(我想这些表格本身就说明了一切)会产生以下结果。
此连接需要 10 秒
select U.firstname
from Bid B
inner join [User] U on U.userName = B.[user]
Run Code Online (Sandbox Code Playgroud)
这个带有子查询的查询需要3秒
select firstname
from [User]
where userName in (select [user] from bid)
Run Code Online (Sandbox Code Playgroud)
为什么我的实验与我在各处阅读的内容不一致,或者我遗漏了什么?
经过实验,我发现在两者中添加不同后,执行时间是相同的。
我正在编写一些类,它们都实现了一个从接口继承的特定方法.除了对某个其他函数的一次调用之外,所有类的此方法都接近相同.
例如:
public void doSomething(){
int a = 6;
int b = 7;
int c = anOtherMethod(a,b);
while(c < 50){
c++;
}
}
Run Code Online (Sandbox Code Playgroud)
如果多个类具有doSomething()函数但是anOtherMethod()方法的实现有何不同呢?
在这种情况下如何避免代码重复?(这不是我的实际代码,而是一个简化的版本,可以帮助我描述我的意思更好.)