表数据较大,大约一百万条。目前思路是左连接,但会走全表查询,速度很慢
select
si1.*
from
service_info si1
left outer join service_info si2 on
si1.service_id = si2.service_id
where
si1.flag= 'flag1'
and si2 .serial_id is null;
请问有没有什么更快的解决方法或思路?目前仅使用 sql 查询,不做其他例如分区表或分表操作。
###你可以了解一下explain,使用explain查看执行计划,按照反馈进行优化,不过从你的sql 可以大概给一下建议:像si2 .serial_id
可以设置0为默认值并且增加索引,这样查找就不需要使用is null 进行查找,而si1.flag 如果是只有两个值的话,索引可加可不加吧