026.Sql排序和写Where条件

Posted 攻城狮朋友圈

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了026.Sql排序和写Where条件相关的知识,希望对你有一定的参考价值。

mysql 打开 slow_query_log_file,看到以下查询超过1s。

对于的mybatis文件如下。

sql慢,几乎都和索引有关。

索引情况

  1. 值的分布区间较少,索引意义不大。如is_deleted,一看就是bool值。
  2. null 特殊,不参与计算,统计,索引不好。

比较计算时,下列性能递增。

  1. last_invoke_time - interval 50 minute > now() 左值计算
  2. last_invoke_time > now() + interval 50 minute 右值计算
  3. last_invoke_time > ‘2018-11-07 12:34:56’ 恒定值

排序,尽量使用索引。

create_time 等同于 id,两者都是(严格)有序递增,不保证连续。

所以,上诉sql应该优化为

以上是关于026.Sql排序和写Where条件的主要内容,如果未能解决你的问题,请参考以下文章

Oracle PL/SQL - 根据条件对不同列进行选择、分组、排序、where-clause 的最佳方法?

Mybatis -- 动态Sql概述动态Sql之<if>(包含<where>)动态Sql之<foreach>sql片段抽取

如何根据 Where 条件获取 Redshift 中的上述值?

MySQL的排序方式

按最大条件匹配排序

php sql 中WHERE 的条件:IN(3,2,5,8) 结果如何按IN中的顺序排序