我在where子句中有多个regexp的查询。 where子句中包含的coloumns已被索引。 但查询不使用索引。 MySql regexp是否会导致使用索引?如果没有,那可能是什么解决方法呢?
答案 0 :(得分:4)
不,正则表达式查找不能使用索引。如果您正在应用正则表达式的东西是索引,它可能会更快一点,但您实际上是表扫描。
我知道的唯一解决方法是使用LIKE 'foo%'
代替RLIKE 'foo.*'
,如果这是你的正则表达式。这样一列的索引可以使用LIKE但不能使用RLIKE