討論串[SQL ] 如何改善 LIKE '%search%' 的效能?
共 18 篇文章

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者statue (statue)時間17年前 (2007/06/25 13:15), 編輯資訊
1
0
0
內容預覽:
這個其實有做了, 不過大家亂打的機率很大,. 所以其實重複 match 查詢字串的機率小的可憐..這邊有點太高深了, 看不太懂..... fulltext 其實我有試過, 但是我做了 FULLTEXT 後, 他顯示的組別只有一組.... 所以不管怎麼查的結果都是空的.... 而這個查詢在我的網站上平

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者zhman (閒閒的人)時間17年前 (2007/06/25 15:00), 編輯資訊
0
0
0
內容預覽:
我想先說的是,要時間就要用空間來換.. 而你的查詢平均只用了1-2秒,我以為以一般使用來說不算長了.. 在資料庫版,所以只探討資料庫能做的事.. 以你的實例,命中率過低,以這個方法來說,你能做的就是我所說的,預先insert一些keywords.資料庫能加速,靠的就是預先準備好資料讓你讀,也就是in
(還有398個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者DarkKiller (System hacked)時間17年前 (2007/06/25 15:09), 編輯資訊
1
0
0
內容預覽:
MySQL 的 %...% 一定是 table scan,如果資料是拉丁語系資料,用 MySQL. 提供的 fulltext index 做。. 如果是 CJK 用專門的 fulltext search engine 做,像 Lucene (或 CLucene),. 另外還需要了解一些目前切詞常用到

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者lottemarines (一平)時間17年前 (2007/06/27 11:32), 編輯資訊
1
0
1
內容預覽:
上面的方法不會很高深啊,感覺也挺有用的. 例如 有人查過 「藥水」 這個詞. 第一次作的時候是完整的做出來,並把結果另存在另一張(B)資料表裡. 第二次就把上次的結果從另一張資料表裡拿出來. 因為(B)資料表裡頭只有一筆,所以找起來當然比幾萬筆快. 我相信大多數的人搜尋詞頂多只有幾千則. 一定比全部
(還有116個字)

推噓0(0推 0噓 0→)留言0則,0人參與, 最新作者isnora (nora)時間17年前 (2007/06/27 23:35), 編輯資訊
1
0
1
內容預覽:
雖然有點離題了~,我想辦法弄成三行. Lucene,這個解決方案你可以試試…. http://lucene.apache.org/. 有很多人使用這個套件來解決搜尋的問題~. --. 發信站: 批踢踢實業坊(ptt.cc). ◆ From: 123.193.172.90.