zoukankan      html  css  js  c++  java
  • 查询条件左边写入函数,导致无法命中索引

    背景:

    简单罗列下之前做过的优化,人懒。

    所以没能把所有的整理统一放出来。

    情况:

    系统查询过慢,没能命中索引。

    <!--对账单数量 -->
    <select id="selectCount" resultType="java.lang.Integer" parameterType="map">
        select count(*) from monthly_statements where store_id = #{storeId}
        <if test="billNo != null">
            and bill_no = #{billNo}
        </if>
        <if test="beginTime != null and endTime != null">
            and date_format(created_at,"%Y-%m-%d") between #{beginTime,jdbcType=VARCHAR}
            and #{endTime,jdbcType=VARCHAR}
        </if>
        <if test="isDeadline == 0">   <!-- 未到账期时间 -->
            and expiration_time  &gt;  now()
        </if>
        <if test="isDeadline == 1">   <!-- 已到账期时间 -->
            and expiration_time  &lt;=  now()
        </if>
    </select>

    案例:

    • 优化前
    select * from cc where date_format(dd,'%Y-%m-%d')="2016-02-22";

    • 优化后
    select * from orders where `created_at` > '2016-02-22' and `created_at` < date_add('2016-02-22',interval 1 day);

  • 相关阅读:
    网页打开微信链接 无法返回
    wap尝试调取app(网易新闻为例)
    兼容性
    图片旋转效果
    a标签发送邮件
    windows 下的bash 环境安装npm
    css 设置滚动条的样式
    前端h5遇到的问题及解决办法
    safari input默认样式
    delphi 新版内存表 FDMemTable
  • 原文地址:https://www.cnblogs.com/snifferhu/p/5730933.html
Copyright © 2011-2022 走看看