作者statue (statue)
看板Database
標題[SQL ] 如何改善 LIKE '%search%' 的效能?
時間Mon Jun 25 01:27:53 2007
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