[SQL ] 如何改善 LIKE '%search%' 的效能?
SELECT InventorySlot, ItemClassID, ItemSubClassID,
ItemDisplayInfoDBC.Name AS ItemDisplayName, DisplayHtml, ReqLevel, ItemID,
Name1, Quality, ItemDisplayID
FROM WIDB, ItemDisplayInfoDBC
WHERE ItemDisplayInfoDBC.ID = WIDB.ItemDisplayID
AND Name1 LIKE '%怒氣藥水%'
ORDER BY ItemLevel DESC
LIMIT 100
Name1 是 varchar(255) utf-8 編碼的欄位.
這樣子查詢的結果會比對 WIDB 整個表格, 像是資料有 22179 就會比對這麼多次.
有加快的方式嗎?
下面是 EXPLAIN 的結果:
id select_type table type possible_keys key key_len ref rows Extra
1 SIMPLE WIDB index ItemDisplayID ItemLevel 4 NULL 22179 Using where
1 SIMPLE ItemDisplayInfoDBC eq_ref PRIMARY PRIMARY 4 statue.WIDB.ItemDisplayID 1
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 219.68.121.199
討論串 (同標題文章)
以下文章回應了本文 (最舊先):
完整討論串 (本文為第 1 之 18 篇):
Database 近期熱門文章
PTT數位生活區 即時熱門文章