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

看板Database (資料庫)作者 (小心一點)時間7年前 (2017/08/25 16:07), 7年前編輯推噓0(001)
留言1則, 1人參與, 最新討論串17/18 (看更多)
想請問一下 假於架設另一台server跑同步 比如說 商品資料 有百萬筆 即使我在另一台db作serach 但是資料量一樣的話 透過模糊搜尋的時間 不也會一樣嗎? 另外 我去試了一下 蝦皮或是奇摩拍賣的網站 他們的商品 都是破億的!! 我透過奇摩 輸入2組關鍵字作搜尋 結果不到一秒 就跑出結果來 (好快...) 如果不是主機強大的話 也是透過ES做到的嗎? ※ 引述《DarkKiller (System hacked)》之銘言: : 居然是十年前的文章... (想說居然是 Xapian...) : 如果你的資料量還會再增加的話,現在主流的方式是用 Elasticsearch (ES) 架 : 設,你可以翻翻這本中文書:(雖然是講怎麼分析的,但 ES 本身就有全文搜尋的 : 能力) : https://www.kingstone.com.tw/book/book_page.asp?kmcode=2013120359772 : 如果沒辦法另外架設服務的話,另外架一台 MySQL server 跑 replication 同步 : ,這台 server 獨立給 search 用也是一個方法... (國內某大站台以前是這樣的 : 架構) : ※ 引述《liisi (小心一點)》之銘言: : : 大家午安 : : 目前也是遇到 like '%關鍵字%' 效能會變差的問題 : : 網站的商品數 超過一百萬筆 : : 網站的使用族群 是所有消費者 : : 透過關鍵字 來模糊搜尋商品名稱 甚至是二個以上的關鍵字來搜尋 : : ( 商品名稱 like '%關鍵字A%' or 商品名稱 like '%關鍵字B%' ) : : 測試過時間 需要 2 ~ 2.4秒左右 : : 爬文了 也google過 了解如果把%放在前頭 會讓索引無效 : : 我也自己試了一下 '關鍵字%' 時間0.0005秒 (也差太多了....) : : 但是關鍵字搜尋 不太可能用 like '關鍵字%'找資料 : : 用其他的語法 locate試了一下 也是很慢 : : 想請問大家 在語法的部分 目前還沒辦法解決嗎? -- ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 202.39.58.43 ※ 文章網址: https://www.ptt.cc/bbs/Database/M.1503648449.A.82B.html ※ 編輯: liisi (202.39.58.43), 08/25/2017 16:08:46

08/25 23:40, , 1F
關鍵字 ranking
08/25 23:40, 1F
文章代碼(AID): #1Pdzh1Wh (Database)
討論串 (同標題文章)
文章代碼(AID): #1Pdzh1Wh (Database)