首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >MySql查询调优

MySql查询调优
EN

Stack Overflow用户
提问于 2022-04-08 21:54:06
回答 1查看 39关注 0票数 1

我有一个MySQL sql查询,如下所示。

使用解释,我可以看到表‘cl_tiss_consulta’(别名BBB)和表‘cl_tiss_sadt’(别名CCC)正在使用一个完整的扫描显示所附图片。

对于那个表(cl_tiss_consulta和cl_tiss_sadt),我已经在'data_fat‘列上有了一个索引'ix_data_fat’

如何将此查询此表更改为使用索引?

// MySQL sql查询

代码语言:javascript
运行
复制
 SELECT 
        A.id AS histo_id,
        DATE_FORMAT(A.horaent, '%d/%m/%Y %H:%i') AS horaent,
        C.cpf,
        KK.nome AS nomeconv,
        LL.nome AS nomeplano,
        B.nome AS nomemed
    FROM
        cl_histo A
            JOIN
        cl_clientes C ON C.id = A.cliente_id
            JOIN
        cl_staff_nh B ON B.id = A.med_id
            LEFT JOIN
        cl_planos LL ON LL.id = A.plano_id
            LEFT JOIN
        cl_convenio KK ON KK.id = LL.conv_id
    WHERE
        A.horaent >= '2022-04-08'
            AND A.horaent < '2022-04-09'
            AND A.deleted <> 1
            AND NOT (EXISTS( SELECT 
                1
            FROM
                cl_tiss_consulta BBB
            WHERE
                BBB.cliente_id = A.cliente_id
                    AND BBB.data_fat >= DATE(A.horaent)
                    AND BBB.data_fat < DATE_ADD(DATE(A.horaent),
                    INTERVAL 1 DAY))
or 
EXISTS( SELECT 
                1
            FROM
                cl_tiss_sadt CCC
            WHERE
                 CCC.cliente_id = A.cliente_id
                    AND  CCC.data_fat >= DATE(A.horaent)
                    AND  CCC.data_fat < DATE_ADD(DATE(A.horaent),
                    INTERVAL 1 DAY))
)

EN

回答 1

Stack Overflow用户

发布于 2022-04-09 02:09:57

这两个表上的(cliente_id, data_fat)需要多个索引。在第一列上筛选相等,在第二列上筛选日期时间范围,因此两列BTREE索引非常适合这种情况。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/71803516

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档