sqlercn老师,请问,一张大表水平拆分过后,如果需要查询这张大表的数据某一条,并且不知道被查询记录的id值,也就是不知道具体在哪张小表中,那么,我们应该怎么查询呢?应该join所有小表来一起查询吗?
比如:大表:
select id,name from big_table where phone=123456
小表:
select id,name
from small_table_1 as a
left join small_table_2 as b
left join small_table_3 as c
left join small_table_4 as d
where a.phone=123456 or b.phone=123456 or c.phone=123456 or d.phone=123456
或者
select id,name
from small_table_1
where phone=123456
union
select id,name
from small_table_2
where phone=123456
union
select id,name
from small_table_3
where phone=123456
union
select id,name
from small_table_4
where phone=123456
以上的两种在方式适合使用在水平拆分的表中进行查询吗?如果不适合,该怎样查询呢?怎样的查询效率相对更高呢?