一場由like引發的事故


故事背景:

  有一張用戶級表,數據量在千萬級別,而運營人員要查看這張表,其中有一項查詢條件為根據“錯誤類型”(單值)查出所有包含這個類型的數據,而這個數據類型在數據庫存放的方式類似於 “1,2,3,4,5,6,8,9,10,7,11,12”  無序。於是有了如下sql。

1 select count(mistake_type)
2     from mitake_table 
3     where (r.mistake_type = '1' 
4               OR r.mistake_type LIKE '%,1' 
5               OR r.mistake_type LIKE '1,%' 
6               OR r.mistake_type LIKE '%,1,%')        
like案例

 like剖析:

  基於上述案例,查證度娘,關於like有如下說法:

    前提,查詢字段建立索引

  1.     字段 like ‘%關鍵字%’  不走索引,速度最慢
  2.     字段 like ‘關鍵字%’     使用字段進行升序索引
  3.     字段 like ‘%關鍵字’     使用字段進行降序索引

 那么問題來了,針對這起事故,你有什么好的解決辦法呢????????


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM