美文网首页
SQL优化汇总

SQL优化汇总

作者: 一只弹窗仔 | 来源:发表于2022-08-27 10:40 被阅读0次

    1、字段区分度不高的索引,批量操作时,条数少于10个时会走索引,大于10个不走索引,可以如下优化

        <select id="xxx" resultType="java.lang.Long">
            <foreach collection="list" item="item" separator="union all" >
                select id
                from table
                where  cost_bill_no = #{item}
            </foreach>
        </select>
    

    2、使用min(),max()函数查询某字段时,可以使用order by 排序取limit 1
    修改前:

    SELECT MIN(year) FROM table WHERE company_id = 1 AND acc_status = 2  
    

    修改后:已根据company_id ,year 简历组合索引

    SELECT year FROM table WHERE company_id = 1 AND acc_status = 2 order by year limit 1   
    

    3、limit影响优化器对索引的选择,对于一些没有走预期索引的SQL可以加limit调试

    4、group by默认会根据字段排序,后面有order by字段时,可以把字段写在group by后

    5、优化器是基于时间和成本综合代价选择索引

    相关文章

      网友评论

          本文标题:SQL优化汇总

          本文链接:https://www.haomeiwen.com/subject/uqfxnrtx.html