[英]MySQL - InnoDB indexing varchar or indexing multiple varchars
大家好,我打算創建具有10列的表,該表應至少為10,000,000行,並且在其中,我將具有列description - VARCHAR(600)
和其上的索引。
因此,問題是,在該列上查詢LIKE
會更快(VARCHAR(600)),還是將描述分為100個字符的6列並用LIKE
和OR
索引會更快。
例如: description - VARCHAR(600) INDEX
SELECT `id` FROM `table` WHERE `description` LIKE "%something%"
或者它會更快分裂description
在6列像desc1
, desc2
,.. desc6
與VARCHAR(100) INDEX
-它們每一個和使用以下查詢:
SELECT `id` FROM `table` WHERE `desc1` LIKE "%something%" OR `desc1` LIKE "%something%" OR `desc3` LIKE "%something%" OR `desc4` LIKE "%something%" OR `desc5` LIKE "%something%" OR `desc6` LIKE "%something%"
在我開始創建數據庫之前就想知道。
最好的問候,並感謝大家!
根本沒有區別。 。 。 好,很少。 該查詢將必須進行全表掃描,因為like
模式以通配符(“%”)開頭。
如果您關心性能,則可能應該將該問題重新表述為全文搜索。 從文檔開始。
如果必須使用LIKE '%something%'
(即,帶前導通配符的LIKE
),則
LIKEs
,加上ORs
)。另外,你會怎么做有關something
恰好是在兩個塊傳播的?
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.