Re: [SQL ] 如何改善 LIKE '%search%' 的效能?

看板Database (資料庫)作者 (statue)時間17年前 (2007/06/25 13:15), 編輯推噓0(000)
留言0則, 0人參與, 最新討論串6/18 (看更多)
※ 引述《zhman (閒閒的人)》之銘言: : MySQL的全文檢索我想並不適合用,尤其是中文的資料,雖然網頁上是講得很好聽,不過試了就知道. : 如果你的資料是有特別的結構或pattern,那也許有其他更好的方法. : 我這裡提供一個簡單的一般化方法,就是自己實作index,透過cache的方式. : 1.開一個新的table,包含2個欄位:(key,id),key就是會被查詢的keyword,id則是對應record的primary key. : 2.每次查詢就先查這個table,有資料,那很幸運,你很快就有結果了. : 3.沒資料,就重做你原來的like查詢,再把結果insert到這個table中,下次就可以用. 這個其實有做了, 不過大家亂打的機率很大, 所以其實重複 match 查詢字串的機率小的可憐.. : 基本假設是你只想知道某個keyword是存在某筆record.其他更詳細的查詢,則需再做其他的變化. : 如果你有一些keywords,那可以預先insert一些資料,也可以增加效率. : 一旦資料有做更新時,也需要一併keyword的table,如果更新頻繁的話,那你可要考量一下時間成本. 這邊有點太高深了, 看不太懂.... fulltext 其實我有試過, 但是我做了 FULLTEXT 後, 他顯示的組別只有一組... 所以不管怎麼查的結果都是空的... 而這個查詢在我的網站上平均會消耗 1-2 秒的時間, 其他的查詢都能利用 index .. 對中文的查詢該怎麼做才能加速呢.. -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 220.134.226.5
文章代碼(AID): #16Vq-9iS (Database)
討論串 (同標題文章)
文章代碼(AID): #16Vq-9iS (Database)