问答

mysql同表,flag只有两个值,要求查出值 flag1存在,flag2不存在

作者:admin 2021-05-06 我要评论

表数据较大,大约一百万条。目前思路是左连接,但会走全表查询,速度很慢 select si1.*from service_info si1 left outer join service_info si2 on si1.service...

在说正事之前,我要推荐一个福利:你还在原价购买阿里云、腾讯云、华为云服务器吗?那太亏啦!来这里,新购、升级、续费都打折,能够为您省60%的钱呢!2核4G企业级云服务器低至69元/年,点击进去看看吧>>>)

表数据较大,大约一百万条。目前思路是左连接,但会走全表查询,速度很慢

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 如果是只有两个值的话,索引可加可不加吧

版权声明:本文转载自网络,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。本站转载出于传播更多优秀技术知识之目的,如有侵权请联系QQ/微信:153890879删除

相关文章
  • mysql同表,flag只有两个值,要求查出

    mysql同表,flag只有两个值,要求查出

  • 预览后端传来的很大的base64流的pdf文

    预览后端传来的很大的base64流的pdf文

  • 请教Nginx反向代理配置

    请教Nginx反向代理配置

  • 项目上线之后无法访问后端接口

    项目上线之后无法访问后端接口

腾讯云代理商
海外云服务器