目標:模糊查詢
反模式:
like
缺點:效能太差,無法使用索引,必須全表遍歷。
合理使用反模式:
資料量小、條件簡單時可以用。
解決方案:
使用特殊的搜尋引擎而不是sql
1、資料庫擴充套件,各大資料庫都有對全文檢索的解決方案,但是配置複雜。
2、使用第三方搜尋引擎,比如lucene...
3、實現自己的搜尋引擎:
使用反向索引,就是乙個所有可能被搜尋的單詞列表。再將與單詞批量的資料的id儲存到乙個交叉表裡。
一旦有新的搜尋單詞,就使用like查詢結果,並將結果儲存到交叉表裡,這樣下次就不必like了。
一旦有新的文件入庫,就需要用觸發器(或者定時)去填充交叉表。
SQL反模式筆記18 使用 查詢
目標 減少輸入 反模式 使用 缺點1 傳輸的資料量大。解決方案 明確列出列名 這一章內容太簡單了,好像沒啥可說的。我想起用ibatis的時候遇到的乙個問題 最初的sql都是自動生成的,比如根據id update某個表,輸入引數是這個表對應的乙個entity,包含了這個表幾乎所有的字段。這樣使用的時候...
sql 模糊查詢
一般模糊語句如下 select 字段 from 表 where 某欄位 like 條件 其中關於條件,sql提供了四種匹配模式 1,表示任意0個或多個字元。可匹配任意型別和長度的字元,有些情況下若是中文,請使用兩個百分號 表示。比如 select from user where u name lik...
SQL模糊查詢
sql提供了四種匹配模式 1.表示任意 0個或多個字元。如下語句 select from user where name like 三 將會把 name為 張三 三腳貓 唐三藏 等等有 三 的全找出來 2.表示任意單個字元。語句 select from user where name like 三 ...