我有两个存储用户数据的表,一个用于内部用户,另一个用于外部用户。两个用户都会买一本书,所以我有下面的 sql 脚本
select o.orderid, o.orderdate, u.firstname, u.lastname from OrderTable o inner join
(
select inneruser_id as uid, firstname, lastname from innerUser where len(firstname) > 0 or len(lastname) > 0
union
select external_id as uid, firstname, lastname from externalUser where len(firstname) > 0 or len(lastname) > 0
) u on u.uid = o.userId where o.orderdate > {0}
对于innerUser表,innneruser_id是主键,而external_id不是externalUser表的主键,我想知道union的结果是否还在u.uid上有索引,因为内部用户超过20万,外部用户约10万.
我是否需要向 external_id 添加索引,这会提高查询的性能吗?我很感激任何帮助。