1. 程式人生 > >026.Sql排序和寫Where條件

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應該優化為