当一张表小得多时,以编程方式连接表还是使用 SQL Join 语句更快?
更具体地说,如何从hashmap<int, string>
与预连接数据库上的表相比,使用较小的表并将其值设置为从较大的表返回的对象?两个表的相对大小有区别吗?
Update:重新表述我的问题。是否抓住subset较大的表(我关心的 5,000 - 20,000 条记录),然后以编程方式连接较小的表(我将在本地缓存)执行 SQL 连接? SQL 连接适用于整个表还是仅适用于将返回的较大表的子集?
SQL连接语句:
SELECT id, description
FROM values v, descriptions d
WHERE v.descID=d.descID
AND v.something = thingICareAbout;
个人陈述:
SELECT id, descID
FROM values
WHERE v.something = thingICareAbout;
SELECT descID, description
FROM descriptions d;
程序化加入:
for (value : values){
value.setDescription(descriptions.get(value.getDescID))
}
附加信息:大表中总共有 800,000,000 条记录,对应小表中的 3,000 个值。大多数搜索会返回 5,000 - 20,000 个结果。这是一个 Oracle 数据库。