Re: [SQL ] 如何改善 LIKE '%search%' 的效能?
大家午安
目前也是遇到 like '%關鍵字%' 效能會變差的問題
網站的商品數 超過一百萬筆
網站的使用族群 是所有消費者
透過關鍵字 來模糊搜尋商品名稱 甚至是二個以上的關鍵字來搜尋
( 商品名稱 like '%關鍵字A%' or 商品名稱 like '%關鍵字B%' )
測試過時間 需要 2 ~ 2.4秒左右
爬文了 也google過 了解如果把%放在前頭 會讓索引無效
我也自己試了一下 '關鍵字%' 時間0.0005秒 (也差太多了....)
但是關鍵字搜尋 不太可能用 like '關鍵字%'找資料
用其他的語法 locate試了一下 也是很慢
想請問大家 在語法的部分 目前還沒辦法解決嗎?
※ 引述《DarkKiller (System hacked)》之銘言:
: ※ 引述《statue (statue)》之銘言:
: : AND Name1 LIKE '%怒氣藥水%'
: : Name1 是 varchar(255) utf-8 編碼的欄位.
: : 這樣子查詢的結果會比對 WIDB 整個表格, 像是資料有 22179 就會比對這麼多次.
: MySQL 的 %...% 一定是 table scan,如果資料是拉丁語系資料,用 MySQL
: 提供的 fulltext index 做。
: 如果是 CJK 用專門的 fulltext search engine 做,像 Lucene (或 CLucene),
: 另外還需要了解一些目前切詞常用到的基礎原理。
: ==
: 另外我自己幫 pixnet 架的是 Xapian,目前已經在內部測試了...
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 202.39.58.43
※ 文章網址: https://www.ptt.cc/bbs/Database/M.1502781684.A.33D.html
→
08/15 16:49, , 1F
08/15 16:49, 1F
→
08/15 16:51, , 2F
08/15 16:51, 2F
推
08/15 17:48, , 3F
08/15 17:48, 3F
→
08/15 17:49, , 4F
08/15 17:49, 4F
→
08/15 17:51, , 5F
08/15 17:51, 5F
討論串 (同標題文章)
Database 近期熱門文章
PTT數位生活區 即時熱門文章