【发布时间】:2013-10-07 07:44:14
【问题描述】:
在大数据上哪个会更快更好?
SELECT * FROM 'table' where name LIKE 'micky%' OR name LIKE 'molly%'
SELECT * FROM 'table' where name REGEXP '(^micky | ^molly)'
当参数超过10个时,会不会让慢的变快?
【问题讨论】:
-
自己尝试一下并对结果进行基准测试?您应该发现,使用
name上的索引,第一种方法会快得多;而如果name未编入索引,则差异可能微不足道(第二种方法可能更快,具体取决于 MySQL 的模式匹配优化)。 -
参数增加到10或100会有什么影响?将 LIKE OR 组合总是比正则表达式更快| ?或者由于 LIKE 比 REGEXP 快得多,因此差异微不足道。