获取查询以命中索引 - 搜索字符串的前缀

时间:2012-07-25 09:35:11

标签: mysql performance indexing

我正在尝试查询索引。

情景如下:

  

给定一个字符串 - 找到列'str'是该字符串的子串的所有行

我尝试过类似的事情:

SELECT str FROM tbl WHERE 'fullstring' LIKE CONCAT(str, '%');

但是 - 在使用EXPLAIN EXTENDED检查查询时,这并没有达到我创建的索引。

在最糟糕的情况下,我可以通过使用嵌套集重建数据库来解决这个问题 - 但我真的很想不必沿着那条路走下去。

1 个答案:

答案 0 :(得分:0)

应该使用索引。如果您的MySQL优化器没有选择正确的索引,那么您可以尝试使用FORCE KEY尝试:

SELECT str FROM tbl FORCE KEY(index_name) WHERE 'fullstring' LIKE CONCAT(str, '%');