原标题:大表小表关联搜索优化,大表与小表关联优化思想
导读:
Intro...
大小表关联,怎么关联才好
使用mapjoin。
根据查询CSDN博客得知,在大小表关联时,最好的关联方式是使用mapjoin,可以大大提高查询性能。使用MapJoin需要满足以下条件:一份表的数据分布在不同的Map中外,其他连接的表的数据必须在每个Map中有完整的拷贝。在两个要连接的表中,有一个很大,有一个很小,这个小表可以存放在内存中而不影响性能。
MapJoin是一种在Map阶段进行表之间连接的技术,不需要进入到Reduce阶段才进行连接。这样做可以节省在Shuffle阶段的大量数据传输,从而起到优化作业的作用。
SQL怎么从大表里面 查询包含小表的内容
--一个方案可才用IN关键字(针对单个字段信息是否包含)
SELECT* FROM FROM表1 WHERE字段名 in(SELECT字段名 FROM表2)
--第二个方案采用inner join连接(可多个字段同时一样)
SELECT*
FROM表1
INNER JOIN表2 on表1.字段A=表2.字段A and表1.字段B=表2.字段B
--(上面的语句的意思是:查询出表1中字段A和字段B内容在表2都存在的数据)
如有什么问题可以追问,谢谢。
--补充回答
SELECT*
FROM表1
INNER JOIN表2 on表1.A=表2.X or表1.B=表2.X or表1.C=表2.X or表1.D=表2.X
或者
SELECT*
FROM表1
where A in(SELECT X FROM表2)
OR B in(SELECT X FROM表2)
OR C in(SELECT X FROM表2)
OR D in(SELECT X FROM表2)