反向列内容以利用索引?

时间:2013-03-08 15:51:12

标签: mysql optimization

基于我现在正在运行的查询,我认为这是一个白日梦:

我有一个包含字符串id的列的索引。这些ID在末尾有一个标识符,所以要捕获我需要的数据,我需要进行模式匹配,如下所示:

key LIKE '%racecar'

由于你不能利用带有通配符的索引来启动字符串,我希望我能做到这一点:

reverse(key) LIKE 'racecar%'

但是,这意味着MySQL无论如何都必须查看并执行函数,这是正确的吗?除了更改命名约定之外,还有其他任何解决此问题的方法吗?

1 个答案:

答案 0 :(得分:0)

这闻起来像糟糕的数据库设计。将字符串和id分成两个单独的列,问题(以及许多其他问题)将自动解决。

我也怀疑字符串的顺序和id在性能方面会对MYSQL产生影响。

另外请记住,你有一个关于键的索引,但这并不意味着你有一个超过key反向的索引,这就是你根本没有加速的原因。我相信,鉴于这种情况,表现超出了救赎。