在VARCHAR上引用索引前缀时,MySQL如何使用ORDER BY?

时间:2012-07-06 23:10:03

标签: mysql indexing prefix

我很好奇这是如何处理的。我有一个名为varchar(255)的{​​{1}}列,其前10个字符已编入索引。

如果我创建一个按标题排序的MySQL查询,它是单独利用该索引还是忽略它,还是必须发出命令来使用该索引?

例如,假设我有两个title个名为:

的项目
title

前10个字符是相同的,那么MySQL如何处理呢?它是否使用前10个字符的前缀索引,然后是逐行索引?

1 个答案:

答案 0 :(得分:1)

嗯,said

  

即使ORDER BY与之匹配,也可以使用索引   索引完全,只要索引的所有未使用部分和   所有额外的ORDER BY列都是WHERE子句中的常量。

但我强烈建议您使用EXPLAIN检查此查询,以查看优化程序将选择的路径。