I have query having multiple regexp in where clause. The coloumns contained in the where clause have already been indexed.
But the query is not using the indexes.
Does MySql regexp cause use of indexes ? If not, what could be the workaround for this ?
解决方案
No, a regular expression lookup can't use an index. If the thing to which you're applying the regex is an index, it might go a bit faster, but you're essentially table scanning.
The only workaround I know is to use LIKE 'foo%' instead of RLIKE 'foo.*' if that's your regex. An index on such a column can use the LIKE but not the RLIKE
本文探讨了在MySQL中使用正则表达式进行查询时索引的有效性问题。指出正则表达式查询通常无法利用索引,除非使用特定形式的LIKE语句替代。并提供了可能的解决方案。
2056

被折叠的 条评论
为什么被折叠?



