由于线上出现慢sql的警告,于是进行优化

每一个inner join on 后面的条件都建有索引

原句:

select p.eval_id

FROM
       p_evaluation p
    INNER JOIN crm_consumer_company ccc ON
        ccc.company_id = p.company_id
    INNER JOIN crm_dept cd  ON
        cd.related_company_id = ccc.server_company_id

INNER JOIN biaoju_caishui.zhubajie_caishui_crm.crm_staff cs ON
        cs.company_id = cd.company_id
        AND cs.staff_id = 9169
    WHERE
        1 = 1 
        AND p.data_type = 'EVAL'
        AND p.staff_type = 'ACCT'

这个inner join 没有走索引。原因具体的我也不知道

后面就直接想到拆分

优化后:

SELECT
    count(p.eval_id)
FROM
    biaoju_caishui.zhubajie_caishui_crm.p_evaluation p
RIGHT join (
    SELECT
        company_id
    FROM
        biaoju_caishui.zhubajie_caishui_crm.crm_consumer_company a
    RIGHT join (
        SELECT
            DISTINCT related_company_id
        FROM
            biaoju_caishui.zhubajie_caishui_crm.crm_dept
        where
            company_id = (SELECT company_id from biaoju_caishui.zhubajie_caishui_crm.crm_staff  where staff_id=9169) ) bb on
        bb.related_company_id = a.server_company_id
    where
        bb.related_company_id is not null) cc on
    cc.company_id = p.company_id
    where
    p.data_type = 'EVAL'
    AND p.staff_type = 'ACCT'

把每一个inner join 拆出来 然后用右连接来进行数据的查询,这样每个索引都没用到了。速度直接快了很多

记一次inner join sql优化相关推荐

  1. 冻结时间倒数前一小时,记一次步步惊心的SQL优化

    作者介绍 黄浩:从业十年,始终专注于SQL.十年一剑,十年磨砺.3年通信行业,写就近3万条SQL:5年制造行业,遨游在ETL的浪潮:2年性能优化,厚积薄发自成一家. 9月版本是一个大版本,上上下下都在 ...

  2. sql查询时间大于某一时间_查询时间从24分钟到2秒钟:记一次神奇的SQL优化

      作者 | VWO译者 | 无明编辑 | VincentAI 前线导读:去年十二月份,VWO 平台支持团队发布了一份缺陷报告.这份报告很有意思,其中有一个来自某家企业用户的分析查询,它的运行速度非常 ...

  3. arcgis select by attributes一次选多个_优化体系--记一次生产数据库sql优化过程--组合索引...

    概述 最近比较有空,所以看了一些问题sql,顺便优化一下,做个简单记录. 问题sql SQL(c212jfrj1m0fg) 在采样期平均单次执行逻辑读为 106205.83, 其最新执行计划涉及 2 ...

  4. 记一次简单的sql优化

    select round(sum(qj0109)/10000,1) from qylist where sfmsqx='y' and lybmhy!='': 进行优化 select round(sum ...

  5. SQL优化--inner、left join替换in、not in、except

    SQL优化--inner.left join替换in.not in.except 新系统上线,用户基数16万,各种查询timeout.打开砂锅问到底,直接看sql语句吧,都是泪呀,一大堆innot i ...

  6. 19_clickhouse,数据查询与写入优化,分布式子查询优化,外部聚合/排序优化,基于JOIN引擎的优化,SQL优化案例,物化视图提速,查询优化常用经验法则,选择和主键不一样的排序键,数据入库优化

    25.数据查询与写入优化 25.1.分布式子查询优化 25.1.1.分布式表的IN查询示例1(普通IN子查询.IN子查询为本地表) 25.1.2.分布式表的IN查询示例2(普通IN子查询.IN子查询为 ...

  7. inner join 和 exists 效率_19 个让 MySQL 效率提高 3 倍的 SQL 优化技巧

    在介绍具体的 SQL 调优的方法前,我们先来简单了解下 MySQL 调优金字塔理论. 如上图所示,数据库优化维度有四个:硬件.系统配置.数据库表结构.SQL 及索引. 优化成本: 硬件>系统配置 ...

  8. SQL优化器原理 - Auto Hash Join

    这是MaxCompute有关SQL优化器原理的系列文章之一.我们会陆续推出SQL优化器有关优化规则和框架的其他文章.添加钉钉群"关系代数优化技术"(群号11719083)可以获取最 ...

  9. 从零开始java数据库SQL优化(二):多个LEFT JOIN的SQL优化

    一:场景 我代码里需要在用户登录时将所有用户相关的用户,角色,部门,岗位,权限(其中权限放在菜单中,每2张表有一张关联表),不多说直接上SQL SELECT a.fk_user_id AS " ...

最新文章

  1. 给char*一个名份
  2. 【风险管理】策略开发流程
  3. NYOJ 118 修路方案(次小生成树)
  4. 容联CTO许志强:AI、5G让通讯更智能、更高效
  5. 使用mount挂载一个windows的共享
  6. neon浮点运算_Linux下VFP NEON浮点编译
  7. pythoncad二次开发视频_AutoCAD ObjectARX 二次开发(2020版)--4,使用ARX向导创建CAD二次开发项目(编程框架)--...
  8. Emlog博客MetBlogm主题-博客开源主题源码
  9. windows Server 2003使用ip安全策略禁止某ip访问服务器的方法
  10. 命令行插入时显示不存在_成年人的世界里,不存在“容易”两个字没人心疼时自己要学会坚强...
  11. Android 保持屏幕常亮
  12. Mysql查询字段去除指定列重复数据
  13. redis报错: redis.exceptions.ResponseError: value is not an integer or out of range
  14. Kubernetes环境下如何运行Coherence缓存集群
  15. NetWare 客户服务禁用了欢迎屏幕和快速切换恢复方法
  16. 系统测试总结报告模板
  17. Linux内核 失速(STALL) 警告说明文档翻译
  18. 复制网站zencart模板的方法
  19. You must restart adb and Eclipse处理方法(sjk_daemon.exe占用5037端口)
  20. Kafka消费者订阅方式

热门文章

  1. 您的孩子左右脑发展平衡吗
  2. 始人蒋涛解读鸿蒙:对开发者究竟意味着什么?
  3. 融雪径流(一)MODIS数据集下载(MOD10A2、MOD11A2)
  4. 头条号如何提升互动度
  5. 【C/C++: 字符数组的赋值】
  6. 前端上传图片回显并用base64编码,后端做解码储存,存储图片路径在.properties文件中配置(以上传身份证照片为例)
  7. C# winfrom美化提示框,顶部弹出提示框
  8. Go利用windres.exe和.rc文件在Windows下生成的程序带有版本、版权、产品名称、图标等属性信息
  9. vector预留空间
  10. javaScript 数组对象取出某一列