[英]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.